u

Dependencies:   QEI mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //ESC:TMM x2-series HV-160
00002 
00003 #include "mbed.h"
00004 #include "QEI.h"
00005 
00006 void escset_up(void);
00007 void ctd(void);
00008 void init(void);
00009 
00010 PwmOut ESC(p21);
00011 Serial USB(USBTX, USBRX);
00012 QEI ENC(p15,p16,NC,300, QEI::X4_ENCODING);
00013 
00014 Timer tim_A;
00015 Timer tim_B;
00016 Timer tim_C;
00017 #define MAX_PWM 1350
00018 #define MOR_N 1000
00019 int PWM = MOR_N;
00020 int esc_type = 1;
00021 /*
00022 /esc-Setup
00023 /Midlle
00024 /High_duty
00025 /Low_duty
00026 */
00027 
00028 int main() {
00029         init();
00030         escset_up();
00031         ctd();
00032         
00033         tim_A.start();
00034         tim_C.start();
00035         //PWM = MOR_N;
00036         //ESC.pulsewidth_us(PWM);
00037         //USB.printf("%8d\r\n",PWM);
00038         while(1){
00039             if(tim_A.read_ms()>=100){
00040                 tim_A.reset();
00041                 tim_B.start();
00042            // USB.printf("Start!\r\n");
00043             PWM += 10;
00044             if(PWM >= MAX_PWM){
00045                 PWM = MAX_PWM;
00046                 }
00047            // PWM = MOR_N;
00048                 
00049             ESC.pulsewidth_us(PWM);
00050         //USB.printf("Finish!\r\n");
00051         }
00052         else if(tim_B.read_ms()> 100){
00053             tim_B.reset();
00054             tim_A.reset();
00055             USB.printf("%d\t%8d\r\n",tim_C.read_ms(),PWM,ENC);
00056             }
00057         }
00058 }
00059 
00060 
00061 //middle,high,low
00062 //high,low,middle
00063 void escset_up(void) 
00064 {
00065     switch(esc_type){
00066     case 0 :
00067     //TMM    
00068     USB.printf("ESC::TMM40063\n");
00069     USB.printf("Set_Middle_duty\n");
00070     ESC.pulsewidth_us(1500);
00071     wait(5);
00072     USB.printf("Set_High_duty\n");
00073     ESC.pulsewidth_us(1950);
00074     wait(5);
00075     USB.printf("Set_Low_duty\n");
00076     ESC.pulsewidth_us(1000);
00077     wait(5);
00078     USB.printf("Setup_over\n");
00079     wait(5);
00080     
00081     case 1:
00082     //HV-160
00083     USB.printf("ESC::HV-160\r\n");
00084 
00085     ESC.pulsewidth_us(1000);
00086     wait(1);
00087     USB.printf("Set-up Over!!!\r\n");
00088 
00089     break;
00090 
00091     }
00092 }
00093 
00094 /*--------------------------------------------------
00095 * ctd()
00096 * @Author: Kei Sugawara
00097 * @Date  : 5.20.2016
00098 * @Brief : start countdown
00099 --------------------------------------------------*/
00100 void ctd(void)
00101 {
00102     int i;
00103     for (i = 5; i >= 0; i--) {
00104         ESC.pulsewidth_us(MOR_N);
00105         USB.printf("COUNT_DOWN:%d\n", i);
00106         wait(1);
00107     }
00108 }
00109 
00110 void init(void)
00111 {
00112     // Start up message
00113     USB.printf("\n\rClimber Initialize\n");
00114 
00115     ESC.period_us(2000);
00116     wait(2);
00117 }