NagaokaRoboticsClub_mbedTeam
/
CompactController_2017
This is Compact Conoroller program using "FEP" library.
Diff: main.cpp
- Revision:
- 0:b7708bb00e0c
- Child:
- 2:cb00e9fed324
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Feb 28 14:10:01 2017 +0000 @@ -0,0 +1,75 @@ +#include "mbed.h" +#include "FEP.h" + +BusIn onSW(PA_4,PA_5,PB_5,PB_4,PB_3,PA_15,PA_12); +BusIn otherSW(PC_13,PC_14,PB_9,PC_15,PA_11,PA_1); +AnalogIn Stick[4]={PA_6,PA_7,PB_0,PB_1}; +FEP fep(PA_2,PA_3); +Serial xbee(PA_9,PA_10,38400); +Serial pc(PB_10,PB_11,115200); +DigitalOut leds[4]={PB_15,PB_14,PB_13,PB_12}; + +void LED_allOFF(){ + int i; + for(i=0;i<4;i++){ + leds[i]=1; + } +} + +void getInputState(double stick_val[],uint8_t SW_val[]){ + int i; + SW_val[0]=onSW; + SW_val[1]=otherSW; + for(i=0;i<4;i++){ + stick_val[i]=Stick[i]; + } +} + +void convertTXdata(double stick_val[],uint8_t SW_val[],char TXdata[]){ + int i; + for(i=0;i<4;i++){ + TXdata[i]=255*stick_val[i]; + } + TXdata[4]=SW_val[0]; + TXdata[5]=SW_val[1]; +} + + +int main() { + onSW.mode(PullUp); + otherSW.mode(PullUp); + LED_allOFF(); + double stick_val[4]; + uint8_t SW_val[2]; + char TXdata[128]; + //set reciever module address (the last three numbers of S/N) + const uint8_t address=198; + uint8_t FEPstate; + while(1) { + getInputState(stick_val,SW_val); + convertTXdata(stick_val,SW_val,TXdata); + FEPstate=fep.TXT_transmit(TXdata,address); + leds[3]!=leds[3]; + if(FEPstate==FEP_P0){ + leds[0]=0; + leds[1]=1; + leds[2]=1; + continue; + }else if(FEPstate==FEP_N0){ + leds[0]=1; + leds[1]=0; + leds[2]=1; + continue; + }else if(FEPstate==FEP_N1){ + leds[0]=1; + leds[1]=1; + leds[2]=0; + continue; + }else{ + leds[0]=1; + leds[1]=1; + leds[2]=1; + wait(0.1); + } + } +}