RC_reciever
Dependencies: mbed RC_reciever
main.cpp
- Committer:
- higedura
- Date:
- 2012-12-08
- Revision:
- 1:16b2e229b739
- Parent:
- 0:18d415e9d13b
- Child:
- 2:8c428bae83a8
File content as of revision 1:16b2e229b739:
#include "mbed.h" #include "TextLCD.h" #define chan 6 // the numbers of channels Serial pc(USBTX, USBRX); DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); Serial xbee(p9,p10); // tx, rx InterruptIn ch1(p13); // yaw InterruptIn ch2(p14); // pitch InterruptIn ch3(p15); // throttle InterruptIn ch4(p16); // roll //InterruptIn ch5(p17); // aux1 //InterruptIn ch6(p18); // aux2 /* InterruptIn ch1(p5); // yaw InterruptIn ch2(p6); // pitch InterruptIn ch3(p7); // throttle InterruptIn ch4(p8); // roll InterruptIn ch5(p9); // aux1 InterruptIn ch6(p10); // aux2 TextLCD lcd(p24, p26, p27, p28, p29, p30); */ void thro_up(); void roll_up(); void pitch_up(); void yaw_up(); void aux1_up(); void aux2_up(); void thro_down(); void roll_down(); void pitch_down(); void yaw_down(); void aux1_down(); void aux2_down(); Timer t_thro; Timer t_roll; Timer t_pitch; Timer t_yaw; Timer t_aux1; Timer t_aux2; // thro roll pitch yaw aux1 aux2 int pwm_pulse[chan] = {0, 0, 0, 0, 0, 0}; int main() { pc.baud(921600); xbee.baud(115200); //lcd.locate(0, 0); lcd.printf("StarBoard Orange"); //lcd.locate(0, 1); lcd.printf("mbed NXP LPC1768"); //wait(1); lcd.cls(); //xbee.printf("\n\r\n\rRC reciever\n\r"); // Reciever function ch1.rise(&yaw_up); ch1.fall(&yaw_down); ch2.rise(&pitch_up); ch2.fall(&pitch_down); ch3.rise(&thro_up); ch3.fall(&thro_down); ch4.rise(&roll_up); ch4.fall(&roll_down); //ch5.rise(&aux1_up); ch5.fall(&aux1_down); //ch6.rise(&aux2_up); ch6.fall(&aux2_down); while(1) { for( int i=0;i<4;i++ ){ xbee.printf("%d ", pwm_pulse[i]); } xbee.printf("\r\n\r\n"); //for( int i=0;i<4;i++ ){ pc.printf("%d ", pwm_pulse[i]); } //pc.printf("\r\n\r\n"); //lcd.locate(0, 0); //lcd.printf("%4d %4d %4d",pwm_pulse[0], pwm_pulse[1], pwm_pulse[2]); //lcd.locate(0, 1); //lcd.printf("%4d %4d %4d",pwm_pulse[3], pwm_pulse[4], pwm_pulse[5]); //lcd.cls(); wait(.1); } } void thro_up(){ t_thro.start(); } void roll_up(){ t_roll.start(); } void pitch_up(){ t_pitch.start(); } void yaw_up(){ t_yaw.start(); } //void aux1_up(){ t_aux1.start(); } //void aux2_up(){ t_aux2.start(); } void thro_down(){ t_thro.stop(); pwm_pulse[0] = (int)(t_thro.read()*1000000-1000); t_thro.reset(); } void roll_down(){ t_roll.stop(); pwm_pulse[1] = (int)(t_roll.read()*1000000-1000); t_roll.reset(); } void pitch_down(){ t_pitch.stop(); pwm_pulse[2] = (int)(t_pitch.read()*1000000-1000); t_pitch.reset(); } void yaw_down(){ t_yaw.stop(); pwm_pulse[3] = (int)(t_yaw.read()*1000000-1000); t_yaw.reset(); } /* void aux1_down(){ t_aux1.stop(); pwm_pulse[4] = (int)(t_aux1.read()*1000000-1000); t_aux1.reset(); } void aux2_down(){ t_aux2.stop(); pwm_pulse[5] = (int)(t_aux2.read()*1000000-1000); t_aux2.reset(); } */