CatPot for defence on RoboCup in 2015 winter

Dependencies:   AQM0802A HMC6352 MultiSerial PID Servo mbed

Committer:
lilac0112_1
Date:
Sat Mar 14 07:16:46 2015 +0000
Revision:
7:81f57b67dff8
Parent:
3:2f74791564c9
The end...

Who changed what in which revision?

UserRevisionLine numberNew 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 */