2015_robocon_bteam / Mbed 2 deprecated 2015robot_main

Dependencies:   PID QEI mbed

Fork of 2015robot_main by Naoto Deguchi

Committer:
DeguNaoto
Date:
Wed Sep 02 05:12:26 2015 +0000
Revision:
3:5266af49834f
Parent:
2:cf8ca6742db9
???????????????; stop()???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DeguNaoto 0:bd4719e15f7e 1 /***RS485 Communication.***/
DeguNaoto 3:5266af49834f 2 //The pin is to communicate with RS_485
DeguNaoto 3:5266af49834f 3 #define RS485_TX p9
DeguNaoto 3:5266af49834f 4 #define RS485_RX p10
DeguNaoto 3:5266af49834f 5 #define RS485_Enable p8
DeguNaoto 0:bd4719e15f7e 6 Serial RS485(RS485_TX, RS485_RX);
DeguNaoto 0:bd4719e15f7e 7
DeguNaoto 3:5266af49834f 8 /***IM920 Communication.***/
DeguNaoto 3:5266af49834f 9 //The pin is to communicate with IM920
DeguNaoto 3:5266af49834f 10 #define IM920_TX p28
DeguNaoto 3:5266af49834f 11 #define IM920_RX p27
DeguNaoto 3:5266af49834f 12 #define IM920_BUSY p26
DeguNaoto 3:5266af49834f 13
DeguNaoto 3:5266af49834f 14
DeguNaoto 0:bd4719e15f7e 15 /***Get state ps3con.***/
DeguNaoto 3:5266af49834f 16 //The pin is to communicate with SBDBT
DeguNaoto 3:5266af49834f 17 #define SBDBT_TX p13
DeguNaoto 3:5266af49834f 18 #define SBDBT_RX p14
DeguNaoto 3:5266af49834f 19
DeguNaoto 0:bd4719e15f7e 20 Serial SBDBT(SBDBT_TX, SBDBT_RX);
DeguNaoto 0:bd4719e15f7e 21 #define ps3_start 0x80
DeguNaoto 0:bd4719e15f7e 22 short square=0,triangle=0,circle=0,cross=0,up=0,down=0,right=0,left=0,l1=0,l2=0,r1=0,r2=0;
DeguNaoto 0:bd4719e15f7e 23 int analog_lx=0,analog_ly=0,analog_rx=0,analog_ry=0;
DeguNaoto 0:bd4719e15f7e 24 int ps3_data[7];
DeguNaoto 0:bd4719e15f7e 25 int count=0;
DeguNaoto 0:bd4719e15f7e 26 int sample=0;
DeguNaoto 2:cf8ca6742db9 27 inline void data_clear()
DeguNaoto 2:cf8ca6742db9 28 {
DeguNaoto 2:cf8ca6742db9 29 for(int i=0; i<7; i++) ps3_data[i]=0;
DeguNaoto 0:bd4719e15f7e 30 }
DeguNaoto 2:cf8ca6742db9 31 inline void data_check()
DeguNaoto 2:cf8ca6742db9 32 {
DeguNaoto 0:bd4719e15f7e 33 square=0,triangle=0,circle=0,cross=0,up=0,down=0,right=0,left=0,l1=0,l2=0,r1=0,r2=0;
DeguNaoto 0:bd4719e15f7e 34 analog_lx=0,analog_ly=0,analog_rx=0,analog_ry=0;
DeguNaoto 0:bd4719e15f7e 35 if((ps3_data[0]==0x00)&&(ps3_data[1]==0x01)) up=1;
DeguNaoto 0:bd4719e15f7e 36 else if((ps3_data[0]==0x00)&&(ps3_data[1]==0x02)) down=1;
DeguNaoto 0:bd4719e15f7e 37 else if((ps3_data[0]==0x00)&&(ps3_data[1]==0x04)) right=1;
DeguNaoto 0:bd4719e15f7e 38 else if((ps3_data[0]==0x00)&&(ps3_data[1]==0x08)) left=1;
DeguNaoto 0:bd4719e15f7e 39 else if((ps3_data[0]==0x00)&&(ps3_data[1]==0x10)) triangle=1;
DeguNaoto 0:bd4719e15f7e 40 else if((ps3_data[0]==0x00)&&(ps3_data[1]==0x20)) cross=1;
DeguNaoto 0:bd4719e15f7e 41 else if((ps3_data[0]==0x00)&&(ps3_data[1]==0x40)) circle=1;
DeguNaoto 0:bd4719e15f7e 42 else if((ps3_data[0]==0x01)&&(ps3_data[1]==0x00)) square=1;
DeguNaoto 0:bd4719e15f7e 43 else if((ps3_data[0]==0x02)&&(ps3_data[1]==0x00)) l1=1;
DeguNaoto 0:bd4719e15f7e 44 else if((ps3_data[0]==0x04)&&(ps3_data[1]==0x00)) l2=1;
DeguNaoto 0:bd4719e15f7e 45 else if((ps3_data[0]==0x08)&&(ps3_data[1]==0x00)) r1=1;
DeguNaoto 0:bd4719e15f7e 46 else if((ps3_data[0]==0x10)&&(ps3_data[1]==0x00)) r2=1;
DeguNaoto 0:bd4719e15f7e 47 analog_lx=ps3_data[2];
DeguNaoto 0:bd4719e15f7e 48 analog_ly=ps3_data[3];
DeguNaoto 0:bd4719e15f7e 49 analog_rx=ps3_data[4];
DeguNaoto 0:bd4719e15f7e 50 analog_ry=ps3_data[5];
DeguNaoto 0:bd4719e15f7e 51 if(!circle) edge=1;
DeguNaoto 0:bd4719e15f7e 52 }
DeguNaoto 0:bd4719e15f7e 53 ///interrupt SBDBT RX.
DeguNaoto 2:cf8ca6742db9 54 inline void SBDBT_interrupt()
DeguNaoto 2:cf8ca6742db9 55 {
DeguNaoto 0:bd4719e15f7e 56 sample=SBDBT.getc();
DeguNaoto 0:bd4719e15f7e 57 if(count==7) data_clear();
DeguNaoto 0:bd4719e15f7e 58 if(sample==ps3_start) count=0;
DeguNaoto 2:cf8ca6742db9 59 else {
DeguNaoto 0:bd4719e15f7e 60 ps3_data[count]=sample;
DeguNaoto 0:bd4719e15f7e 61 count++;
DeguNaoto 0:bd4719e15f7e 62 }
DeguNaoto 0:bd4719e15f7e 63 if(count==6) data_check();
DeguNaoto 0:bd4719e15f7e 64 }
DeguNaoto 2:cf8ca6742db9 65 inline void initializeSBDBT()
DeguNaoto 2:cf8ca6742db9 66 {
DeguNaoto 2:cf8ca6742db9 67 for(int i=0; i<7; i++) ps3_data[i]=0;
DeguNaoto 0:bd4719e15f7e 68 SBDBT.baud(2400);
DeguNaoto 0:bd4719e15f7e 69 SBDBT.format(8, Serial::None, 1);
DeguNaoto 0:bd4719e15f7e 70 SBDBT.attach(SBDBT_interrupt, Serial::RxIrq);
DeguNaoto 0:bd4719e15f7e 71 }