![](/media/cache/profiles/0996dd16b0020a17a26b94f4675fd3da.50x50_q85.png)
RC_reciever
Dependencies: mbed RC_reciever
main.cpp@0:18d415e9d13b, 2012-12-04 (annotated)
- Committer:
- higedura
- Date:
- Tue Dec 04 14:40:04 2012 +0000
- Revision:
- 0:18d415e9d13b
- Child:
- 1:16b2e229b739
RC_reciever
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
higedura | 0:18d415e9d13b | 1 | #include "mbed.h" |
higedura | 0:18d415e9d13b | 2 | #include "TextLCD.h" |
higedura | 0:18d415e9d13b | 3 | |
higedura | 0:18d415e9d13b | 4 | #define chan 6 // the numbers of channels |
higedura | 0:18d415e9d13b | 5 | |
higedura | 0:18d415e9d13b | 6 | Serial pc(USBTX, USBRX); |
higedura | 0:18d415e9d13b | 7 | DigitalOut led1(LED1); |
higedura | 0:18d415e9d13b | 8 | DigitalOut led2(LED2); |
higedura | 0:18d415e9d13b | 9 | DigitalOut led3(LED3); |
higedura | 0:18d415e9d13b | 10 | DigitalOut led4(LED4); |
higedura | 0:18d415e9d13b | 11 | /* |
higedura | 0:18d415e9d13b | 12 | InterruptIn ch1(p26); // yaw |
higedura | 0:18d415e9d13b | 13 | InterruptIn ch2(p25); // pitch |
higedura | 0:18d415e9d13b | 14 | InterruptIn ch3(p24); // throttle |
higedura | 0:18d415e9d13b | 15 | InterruptIn ch4(p23); // roll |
higedura | 0:18d415e9d13b | 16 | InterruptIn ch5(p22); // aux1 |
higedura | 0:18d415e9d13b | 17 | InterruptIn ch6(p21); // aux2 |
higedura | 0:18d415e9d13b | 18 | */ |
higedura | 0:18d415e9d13b | 19 | InterruptIn ch1(p5); // yaw |
higedura | 0:18d415e9d13b | 20 | InterruptIn ch2(p6); // pitch |
higedura | 0:18d415e9d13b | 21 | InterruptIn ch3(p7); // throttle |
higedura | 0:18d415e9d13b | 22 | InterruptIn ch4(p8); // roll |
higedura | 0:18d415e9d13b | 23 | InterruptIn ch5(p9); // aux1 |
higedura | 0:18d415e9d13b | 24 | InterruptIn ch6(p10); // aux2 |
higedura | 0:18d415e9d13b | 25 | TextLCD lcd(p24, p26, p27, p28, p29, p30); |
higedura | 0:18d415e9d13b | 26 | |
higedura | 0:18d415e9d13b | 27 | void thro_up(); void roll_up(); void pitch_up(); void yaw_up(); void aux1_up(); void aux2_up(); |
higedura | 0:18d415e9d13b | 28 | void thro_down(); void roll_down(); void pitch_down(); void yaw_down(); void aux1_down(); void aux2_down(); |
higedura | 0:18d415e9d13b | 29 | |
higedura | 0:18d415e9d13b | 30 | Timer t_thro; Timer t_roll; Timer t_pitch; Timer t_yaw; Timer t_aux1; Timer t_aux2; |
higedura | 0:18d415e9d13b | 31 | |
higedura | 0:18d415e9d13b | 32 | // thro roll pitch yaw aux1 aux2 |
higedura | 0:18d415e9d13b | 33 | int pwm_pulse[chan] = {0, 0, 0, 0, 0, 0}; |
higedura | 0:18d415e9d13b | 34 | |
higedura | 0:18d415e9d13b | 35 | int main() { |
higedura | 0:18d415e9d13b | 36 | |
higedura | 0:18d415e9d13b | 37 | pc.baud(921600); |
higedura | 0:18d415e9d13b | 38 | |
higedura | 0:18d415e9d13b | 39 | lcd.locate(0, 0); lcd.printf("StarBoard Orange"); |
higedura | 0:18d415e9d13b | 40 | lcd.locate(0, 1); lcd.printf("mbed NXP LPC1768"); |
higedura | 0:18d415e9d13b | 41 | wait(1); lcd.cls(); |
higedura | 0:18d415e9d13b | 42 | |
higedura | 0:18d415e9d13b | 43 | // Reciever function |
higedura | 0:18d415e9d13b | 44 | ch1.rise(&yaw_up); ch1.fall(&yaw_down); |
higedura | 0:18d415e9d13b | 45 | ch2.rise(&pitch_up); ch2.fall(&pitch_down); |
higedura | 0:18d415e9d13b | 46 | ch3.rise(&thro_up); ch3.fall(&thro_down); |
higedura | 0:18d415e9d13b | 47 | ch4.rise(&roll_up); ch4.fall(&roll_down); |
higedura | 0:18d415e9d13b | 48 | ch5.rise(&aux1_up); ch5.fall(&aux1_down); |
higedura | 0:18d415e9d13b | 49 | ch6.rise(&aux2_up); ch6.fall(&aux2_down); |
higedura | 0:18d415e9d13b | 50 | |
higedura | 0:18d415e9d13b | 51 | while(1) { |
higedura | 0:18d415e9d13b | 52 | |
higedura | 0:18d415e9d13b | 53 | //for(int i=0;i<chan;i++){ pc.printf("%f ",pwm_pulse[i]); } |
higedura | 0:18d415e9d13b | 54 | //pc.printf("\r\n"); |
higedura | 0:18d415e9d13b | 55 | lcd.locate(0, 0); |
higedura | 0:18d415e9d13b | 56 | lcd.printf("%4d %4d %4d",pwm_pulse[0], pwm_pulse[1], pwm_pulse[2]); |
higedura | 0:18d415e9d13b | 57 | lcd.locate(0, 1); |
higedura | 0:18d415e9d13b | 58 | lcd.printf("%4d %4d %4d",pwm_pulse[3], pwm_pulse[4], pwm_pulse[5]); |
higedura | 0:18d415e9d13b | 59 | lcd.cls(); |
higedura | 0:18d415e9d13b | 60 | |
higedura | 0:18d415e9d13b | 61 | } |
higedura | 0:18d415e9d13b | 62 | } |
higedura | 0:18d415e9d13b | 63 | |
higedura | 0:18d415e9d13b | 64 | void thro_up(){ t_thro.start(); } |
higedura | 0:18d415e9d13b | 65 | void roll_up(){ t_roll.start(); } |
higedura | 0:18d415e9d13b | 66 | void pitch_up(){ t_pitch.start(); } |
higedura | 0:18d415e9d13b | 67 | void yaw_up(){ t_yaw.start(); } |
higedura | 0:18d415e9d13b | 68 | void aux1_up(){ t_aux1.start(); } |
higedura | 0:18d415e9d13b | 69 | void aux2_up(){ t_aux2.start(); } |
higedura | 0:18d415e9d13b | 70 | |
higedura | 0:18d415e9d13b | 71 | void thro_down(){ |
higedura | 0:18d415e9d13b | 72 | t_thro.stop(); |
higedura | 0:18d415e9d13b | 73 | pwm_pulse[0] = (int)(t_thro.read()*1000000-1000); |
higedura | 0:18d415e9d13b | 74 | t_thro.reset(); |
higedura | 0:18d415e9d13b | 75 | } |
higedura | 0:18d415e9d13b | 76 | |
higedura | 0:18d415e9d13b | 77 | void roll_down(){ |
higedura | 0:18d415e9d13b | 78 | t_roll.stop(); |
higedura | 0:18d415e9d13b | 79 | pwm_pulse[1] = (int)(t_roll.read()*1000000-1000); |
higedura | 0:18d415e9d13b | 80 | t_roll.reset(); |
higedura | 0:18d415e9d13b | 81 | } |
higedura | 0:18d415e9d13b | 82 | |
higedura | 0:18d415e9d13b | 83 | void pitch_down(){ |
higedura | 0:18d415e9d13b | 84 | t_pitch.stop(); |
higedura | 0:18d415e9d13b | 85 | pwm_pulse[2] = (int)(t_pitch.read()*1000000-1000); |
higedura | 0:18d415e9d13b | 86 | t_pitch.reset(); |
higedura | 0:18d415e9d13b | 87 | } |
higedura | 0:18d415e9d13b | 88 | |
higedura | 0:18d415e9d13b | 89 | void yaw_down(){ |
higedura | 0:18d415e9d13b | 90 | t_yaw.stop(); |
higedura | 0:18d415e9d13b | 91 | pwm_pulse[3] = (int)(t_yaw.read()*1000000-1000); |
higedura | 0:18d415e9d13b | 92 | t_yaw.reset(); |
higedura | 0:18d415e9d13b | 93 | } |
higedura | 0:18d415e9d13b | 94 | |
higedura | 0:18d415e9d13b | 95 | void aux1_down(){ |
higedura | 0:18d415e9d13b | 96 | t_aux1.stop(); |
higedura | 0:18d415e9d13b | 97 | pwm_pulse[4] = (int)(t_aux1.read()*1000000-1000); |
higedura | 0:18d415e9d13b | 98 | t_aux1.reset(); |
higedura | 0:18d415e9d13b | 99 | } |
higedura | 0:18d415e9d13b | 100 | |
higedura | 0:18d415e9d13b | 101 | void aux2_down(){ |
higedura | 0:18d415e9d13b | 102 | t_aux2.stop(); |
higedura | 0:18d415e9d13b | 103 | pwm_pulse[5] = (int)(t_aux2.read()*1000000-1000); |
higedura | 0:18d415e9d13b | 104 | t_aux2.reset(); |
higedura | 0:18d415e9d13b | 105 | } |