RC_reciever

Dependencies:   mbed RC_reciever

Dependents:   RC_reciever

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?

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