CatPot for defence on RoboCup in 2015 winter
Dependencies: AQM0802A HMC6352 MultiSerial PID Servo mbed
usart.cpp@3:2f74791564c9, 2015-03-11 (annotated)
- Committer:
- lilac0112_1
- Date:
- Wed Mar 11 07:47:19 2015 +0000
- Revision:
- 3:2f74791564c9
Send to F.F.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lilac0112_1 | 3:2f74791564c9 | 1 | #include "mbed.h" |
lilac0112_1 | 3:2f74791564c9 | 2 | |
lilac0112_1 | 3:2f74791564c9 | 3 | |
lilac0112_1 | 3:2f74791564c9 | 4 | #define KEYCODE 0xAA |
lilac0112_1 | 3:2f74791564c9 | 5 | #define TX_CHECKCODE (tx_data[1]^tx_data[2]^tx_data[3]^tx_data[4]^tx_data[5]^tx_data[6]^tx_data[7]^tx_data[8]^tx_data[9]) |
lilac0112_1 | 3:2f74791564c9 | 6 | #define RX_CHECKCODE (rx_data[1]^rx_data[2]^rx_data[3]^rx_data[4]^rx_data[5]^rx_data[6]^rx_data[7]^rx_data[8]^rx_data[9]) |
lilac0112_1 | 3:2f74791564c9 | 7 | #define DATA_NUM 11 |
lilac0112_1 | 3:2f74791564c9 | 8 | #define CHECK (DATA_NUM - 1) |
lilac0112_1 | 3:2f74791564c9 | 9 | |
lilac0112_1 | 3:2f74791564c9 | 10 | |
lilac0112_1 | 3:2f74791564c9 | 11 | extern Serial Mbed; |
lilac0112_1 | 3:2f74791564c9 | 12 | extern Serial pc; |
lilac0112_1 | 3:2f74791564c9 | 13 | |
lilac0112_1 | 3:2f74791564c9 | 14 | extern uint8_t PingData[4]; |
lilac0112_1 | 3:2f74791564c9 | 15 | extern uint8_t IrData[3]; |
lilac0112_1 | 3:2f74791564c9 | 16 | extern uint8_t IrNum; |
lilac0112_1 | 3:2f74791564c9 | 17 | extern unsigned int Compass; |
lilac0112_1 | 3:2f74791564c9 | 18 | |
lilac0112_1 | 3:2f74791564c9 | 19 | |
lilac0112_1 | 3:2f74791564c9 | 20 | |
lilac0112_1 | 3:2f74791564c9 | 21 | void micon_rx(){ |
lilac0112_1 | 3:2f74791564c9 | 22 | |
lilac0112_1 | 3:2f74791564c9 | 23 | static uint8_t rx; |
lilac0112_1 | 3:2f74791564c9 | 24 | static int rx_data[DATA_NUM]; |
lilac0112_1 | 3:2f74791564c9 | 25 | |
lilac0112_1 | 3:2f74791564c9 | 26 | rx_data[rx] = Mbed.getc(); |
lilac0112_1 | 3:2f74791564c9 | 27 | |
lilac0112_1 | 3:2f74791564c9 | 28 | if(rx_data[0] == KEYCODE){ |
lilac0112_1 | 3:2f74791564c9 | 29 | rx++; |
lilac0112_1 | 3:2f74791564c9 | 30 | } |
lilac0112_1 | 3:2f74791564c9 | 31 | |
lilac0112_1 | 3:2f74791564c9 | 32 | if(rx >= DATA_NUM){ |
lilac0112_1 | 3:2f74791564c9 | 33 | if(rx_data[CHECK] == RX_CHECKCODE){ |
lilac0112_1 | 3:2f74791564c9 | 34 | IrData[0] = rx_data[1]; |
lilac0112_1 | 3:2f74791564c9 | 35 | IrData[1] = rx_data[2]; |
lilac0112_1 | 3:2f74791564c9 | 36 | IrData[2] = rx_data[3]; |
lilac0112_1 | 3:2f74791564c9 | 37 | PingData[0] = rx_data[4]; |
lilac0112_1 | 3:2f74791564c9 | 38 | PingData[1] = rx_data[5]; |
lilac0112_1 | 3:2f74791564c9 | 39 | PingData[2] = rx_data[6]; |
lilac0112_1 | 3:2f74791564c9 | 40 | PingData[3] = rx_data[7]; |
lilac0112_1 | 3:2f74791564c9 | 41 | Compass =(rx_data[8]<<0) | |
lilac0112_1 | 3:2f74791564c9 | 42 | (rx_data[9]<<8); |
lilac0112_1 | 3:2f74791564c9 | 43 | |
lilac0112_1 | 3:2f74791564c9 | 44 | if((IrData[0] == 255)||(IrData[1] == 255)||(IrData[2] == 255)){ |
lilac0112_1 | 3:2f74791564c9 | 45 | IrNum = 12; |
lilac0112_1 | 3:2f74791564c9 | 46 | |
lilac0112_1 | 3:2f74791564c9 | 47 | }else{ |
lilac0112_1 | 3:2f74791564c9 | 48 | IrNum = IrData[0]/12; |
lilac0112_1 | 3:2f74791564c9 | 49 | } |
lilac0112_1 | 3:2f74791564c9 | 50 | //pc.printf("%d\t %d\t %d\t %d\t %d\t %d\t\n",rx_data[1],rx_data[2],rx_data[3],rx_data[4],rx_data[5],rx_data[6]); |
lilac0112_1 | 3:2f74791564c9 | 51 | //pc.printf("compass: %d\n",compass); |
lilac0112_1 | 3:2f74791564c9 | 52 | //pc.printf("ping0:%d\tping1:%d\tping2:%d\tping3:%d\n",ping[0],ping[1],ping[2],ping[3]); |
lilac0112_1 | 3:2f74791564c9 | 53 | //pc.printf("ir_min:%d\tir_num:%d\tir_main:%d\n",ir_min,ir_num,ir_main); |
lilac0112_1 | 3:2f74791564c9 | 54 | |
lilac0112_1 | 3:2f74791564c9 | 55 | } |
lilac0112_1 | 3:2f74791564c9 | 56 | rx = 0; |
lilac0112_1 | 3:2f74791564c9 | 57 | } |
lilac0112_1 | 3:2f74791564c9 | 58 | |
lilac0112_1 | 3:2f74791564c9 | 59 | //pc.printf("%d\n", rx_data[rx]); |
lilac0112_1 | 3:2f74791564c9 | 60 | } |
lilac0112_1 | 3:2f74791564c9 | 61 | /* |
lilac0112_1 | 3:2f74791564c9 | 62 | void micon_tx(){ |
lilac0112_1 | 3:2f74791564c9 | 63 | |
lilac0112_1 | 3:2f74791564c9 | 64 | static uint8_t tx; |
lilac0112_1 | 3:2f74791564c9 | 65 | static uint8_t tx_data[DATA_NUM]; |
lilac0112_1 | 3:2f74791564c9 | 66 | |
lilac0112_1 | 3:2f74791564c9 | 67 | if(tx >= DATA_NUM){ |
lilac0112_1 | 3:2f74791564c9 | 68 | tx_data[0] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 69 | tx_data[1] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 70 | tx_data[2] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 71 | tx_data[3] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 72 | tx_data[4] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 73 | tx_data[5] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 74 | tx_data[6] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 75 | tx_data[7] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 76 | tx_data[8] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 77 | tx_data[9] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 78 | tx_data[10] = KEYCODE; |
lilac0112_1 | 3:2f74791564c9 | 79 | tx_data[11] = TX_CHECKCODE; |
lilac0112_1 | 3:2f74791564c9 | 80 | |
lilac0112_1 | 3:2f74791564c9 | 81 | tx = 0; |
lilac0112_1 | 3:2f74791564c9 | 82 | } |
lilac0112_1 | 3:2f74791564c9 | 83 | |
lilac0112_1 | 3:2f74791564c9 | 84 | sensor.putc(tx_data[tx]); |
lilac0112_1 | 3:2f74791564c9 | 85 | tx++; |
lilac0112_1 | 3:2f74791564c9 | 86 | } |
lilac0112_1 | 3:2f74791564c9 | 87 | */ |