Easy ESC controller

Dependencies:   mbed

Committer:
WakoTakeru
Date:
Tue Mar 07 04:00:33 2017 +0000
Revision:
0:f1e8e496357c
first commit;

Who changed what in which revision?

UserRevisionLine numberNew 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 }