![](/media/cache/profiles/0996dd16b0020a17a26b94f4675fd3da.50x50_q85.png)
RC_reciever
Dependencies: mbed RC_reciever
Diff: main.cpp
- Revision:
- 1:16b2e229b739
- Parent:
- 0:18d415e9d13b
- Child:
- 2:8c428bae83a8
--- a/main.cpp Tue Dec 04 14:40:04 2012 +0000 +++ b/main.cpp Sat Dec 08 23:52:11 2012 +0000 @@ -1,105 +1,117 @@ -#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); -/* -InterruptIn ch1(p26); // yaw -InterruptIn ch2(p25); // pitch -InterruptIn ch3(p24); // throttle -InterruptIn ch4(p23); // roll -InterruptIn ch5(p22); // aux1 -InterruptIn ch6(p21); // 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); - - lcd.locate(0, 0); lcd.printf("StarBoard Orange"); - lcd.locate(0, 1); lcd.printf("mbed NXP LPC1768"); - wait(1); lcd.cls(); - - // 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<chan;i++){ pc.printf("%f ",pwm_pulse[i]); } - //pc.printf("\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(); - - } -} - -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(); -} +#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(); +} +*/ \ No newline at end of file