Takeru Wako
/
Nucleo_ESC_controller
Easy ESC controller
main.cpp@0:f1e8e496357c, 2017-03-07 (annotated)
- Committer:
- WakoTakeru
- Date:
- Tue Mar 07 04:00:33 2017 +0000
- Revision:
- 0:f1e8e496357c
first commit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WakoTakeru | 0:f1e8e496357c | 1 | #include "mbed.h" |
WakoTakeru | 0:f1e8e496357c | 2 | |
WakoTakeru | 0:f1e8e496357c | 3 | DigitalOut board_led(LED1); |
WakoTakeru | 0:f1e8e496357c | 4 | BusOut leds(PB_4,PB_5,PA_11,PA_8,PF_1,PF_0,PB_1,PB_6,PB_7,PB_0); |
WakoTakeru | 0:f1e8e496357c | 5 | InterruptIn up(PA_0); |
WakoTakeru | 0:f1e8e496357c | 6 | InterruptIn down(PA_1); |
WakoTakeru | 0:f1e8e496357c | 7 | PwmOut my_pwm(PA_12); |
WakoTakeru | 0:f1e8e496357c | 8 | |
WakoTakeru | 0:f1e8e496357c | 9 | int count; |
WakoTakeru | 0:f1e8e496357c | 10 | |
WakoTakeru | 0:f1e8e496357c | 11 | void pressed(){ |
WakoTakeru | 0:f1e8e496357c | 12 | if(up.read() == 0){ |
WakoTakeru | 0:f1e8e496357c | 13 | if(count < 10){ |
WakoTakeru | 0:f1e8e496357c | 14 | count++; |
WakoTakeru | 0:f1e8e496357c | 15 | }else{ |
WakoTakeru | 0:f1e8e496357c | 16 | count = 10; |
WakoTakeru | 0:f1e8e496357c | 17 | } |
WakoTakeru | 0:f1e8e496357c | 18 | } |
WakoTakeru | 0:f1e8e496357c | 19 | if(down.read() == 0){ |
WakoTakeru | 0:f1e8e496357c | 20 | if(count > 0){ |
WakoTakeru | 0:f1e8e496357c | 21 | count--; |
WakoTakeru | 0:f1e8e496357c | 22 | }else{ |
WakoTakeru | 0:f1e8e496357c | 23 | count = 0; |
WakoTakeru | 0:f1e8e496357c | 24 | } |
WakoTakeru | 0:f1e8e496357c | 25 | } |
WakoTakeru | 0:f1e8e496357c | 26 | board_led = !board_led; |
WakoTakeru | 0:f1e8e496357c | 27 | } |
WakoTakeru | 0:f1e8e496357c | 28 | |
WakoTakeru | 0:f1e8e496357c | 29 | int main() |
WakoTakeru | 0:f1e8e496357c | 30 | { |
WakoTakeru | 0:f1e8e496357c | 31 | count = 0; |
WakoTakeru | 0:f1e8e496357c | 32 | float pwm_data=0.001; |
WakoTakeru | 0:f1e8e496357c | 33 | // Set PWM |
WakoTakeru | 0:f1e8e496357c | 34 | my_pwm.period_ms(20); |
WakoTakeru | 0:f1e8e496357c | 35 | // Set button |
WakoTakeru | 0:f1e8e496357c | 36 | up.fall(&pressed); |
WakoTakeru | 0:f1e8e496357c | 37 | down.fall(&pressed); |
WakoTakeru | 0:f1e8e496357c | 38 | //mainloop |
WakoTakeru | 0:f1e8e496357c | 39 | while (1) { |
WakoTakeru | 0:f1e8e496357c | 40 | if(count == 0){ |
WakoTakeru | 0:f1e8e496357c | 41 | leds = 0b0000000000; |
WakoTakeru | 0:f1e8e496357c | 42 | pwm_data = 0.0010; |
WakoTakeru | 0:f1e8e496357c | 43 | } |
WakoTakeru | 0:f1e8e496357c | 44 | if(count == 1){ |
WakoTakeru | 0:f1e8e496357c | 45 | leds = 0b0000000001; |
WakoTakeru | 0:f1e8e496357c | 46 | pwm_data = 0.0011; |
WakoTakeru | 0:f1e8e496357c | 47 | } |
WakoTakeru | 0:f1e8e496357c | 48 | if(count == 2){ |
WakoTakeru | 0:f1e8e496357c | 49 | leds = 0b0000000011; |
WakoTakeru | 0:f1e8e496357c | 50 | pwm_data = 0.0012; |
WakoTakeru | 0:f1e8e496357c | 51 | } |
WakoTakeru | 0:f1e8e496357c | 52 | if(count == 3){ |
WakoTakeru | 0:f1e8e496357c | 53 | leds = 0b0000000111; |
WakoTakeru | 0:f1e8e496357c | 54 | pwm_data = 0.0013; |
WakoTakeru | 0:f1e8e496357c | 55 | } |
WakoTakeru | 0:f1e8e496357c | 56 | if(count == 4){ |
WakoTakeru | 0:f1e8e496357c | 57 | leds = 0b0000001111; |
WakoTakeru | 0:f1e8e496357c | 58 | pwm_data = 0.0014; |
WakoTakeru | 0:f1e8e496357c | 59 | } |
WakoTakeru | 0:f1e8e496357c | 60 | if(count == 5){ |
WakoTakeru | 0:f1e8e496357c | 61 | leds = 0b0000011111; |
WakoTakeru | 0:f1e8e496357c | 62 | pwm_data = 0.0015; |
WakoTakeru | 0:f1e8e496357c | 63 | } |
WakoTakeru | 0:f1e8e496357c | 64 | if(count == 6){ |
WakoTakeru | 0:f1e8e496357c | 65 | leds = 0b0000111111; |
WakoTakeru | 0:f1e8e496357c | 66 | pwm_data = 0.0016; |
WakoTakeru | 0:f1e8e496357c | 67 | } |
WakoTakeru | 0:f1e8e496357c | 68 | if(count == 7){ |
WakoTakeru | 0:f1e8e496357c | 69 | leds = 0b0001111111; |
WakoTakeru | 0:f1e8e496357c | 70 | pwm_data = 0.0017; |
WakoTakeru | 0:f1e8e496357c | 71 | } |
WakoTakeru | 0:f1e8e496357c | 72 | if(count == 8){ |
WakoTakeru | 0:f1e8e496357c | 73 | leds = 0b0011111111; |
WakoTakeru | 0:f1e8e496357c | 74 | pwm_data = 0.0018; |
WakoTakeru | 0:f1e8e496357c | 75 | } |
WakoTakeru | 0:f1e8e496357c | 76 | if(count == 9){ |
WakoTakeru | 0:f1e8e496357c | 77 | leds = 0b0111111111; |
WakoTakeru | 0:f1e8e496357c | 78 | pwm_data = 0.0019; |
WakoTakeru | 0:f1e8e496357c | 79 | } |
WakoTakeru | 0:f1e8e496357c | 80 | if(count == 10){ |
WakoTakeru | 0:f1e8e496357c | 81 | leds = 0b1111111111; |
WakoTakeru | 0:f1e8e496357c | 82 | pwm_data = 0.0020; |
WakoTakeru | 0:f1e8e496357c | 83 | } |
WakoTakeru | 0:f1e8e496357c | 84 | my_pwm.pulsewidth(pwm_data); |
WakoTakeru | 0:f1e8e496357c | 85 | } |
WakoTakeru | 0:f1e8e496357c | 86 | } |