u
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Wed Jul 20 2022 12:28:57 by
1.7.2