ロボカップ2013のジャパンオープンメインプログラム
Dependencies: PID TextLCD mbed
usart.cpp
00001 #include "mbed.h" 00002 #include "common.h" 00003 00004 #define KEYCODE 0xAA 00005 #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]) 00006 #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]) 00007 #define DATA_NUM 11 00008 #define CHECK (DATA_NUM - 1) 00009 00010 00011 extern Serial sensor; 00012 extern Serial xbee; 00013 extern Serial pc; 00014 00015 extern uint8_t ping[4]; 00016 extern uint8_t ir_min; 00017 extern uint8_t ir_num; 00018 extern uint8_t ir_main; 00019 extern unsigned int compass; 00020 00021 int count; 00022 00023 void xbee_tx(){ 00024 xbee.putc(1); 00025 00026 } 00027 00028 void xbee_rx(){ 00029 if(xbee.readable()){ 00030 count = xbee.getc(); 00031 } else { 00032 count = 0; 00033 } 00034 //pc.printf("%d\n", count); 00035 00036 } 00037 00038 00039 void micon_rx(){ 00040 00041 static uint8_t rx; 00042 static int rx_data[DATA_NUM]; 00043 00044 rx_data[rx] = sensor.getc(); 00045 00046 if(rx_data[0] == KEYCODE){ 00047 rx++; 00048 } 00049 00050 if(rx >= DATA_NUM){ 00051 if(rx_data[CHECK] == RX_CHECKCODE){ 00052 ir_min = rx_data[1]; 00053 ir_num = rx_data[2]; 00054 ping[FRONT] = rx_data[3]; 00055 ping[LEFT] = rx_data[4]; 00056 ping[BACK] = rx_data[5]; 00057 ping[RIGHT] = rx_data[6]; 00058 compass = rx_data[7] + rx_data[8]; 00059 ir_main = rx_data[9]; 00060 //pc.printf("compass: %d\n",compass); 00061 //pc.printf("ping0:%d\tping1:%d\tping2:%d\tping3:%d\n",ping[0],ping[1],ping[2],ping[3]); 00062 //pc.printf("ir_min:%d\tir_num:%d\tir_main:%d\n",ir_min,ir_num,ir_main); 00063 00064 } 00065 rx = 0; 00066 } 00067 00068 //pc.printf("%d\n", rx_data[rx]); 00069 } 00070 /* 00071 void micon_tx(){ 00072 00073 static uint8_t tx; 00074 static uint8_t tx_data[DATA_NUM]; 00075 00076 if(tx >= DATA_NUM){ 00077 tx_data[0] = KEYCODE; 00078 tx_data[1] = KEYCODE; 00079 tx_data[2] = KEYCODE; 00080 tx_data[3] = KEYCODE; 00081 tx_data[4] = KEYCODE; 00082 tx_data[5] = KEYCODE; 00083 tx_data[6] = KEYCODE; 00084 tx_data[7] = KEYCODE; 00085 tx_data[8] = KEYCODE; 00086 tx_data[9] = KEYCODE; 00087 tx_data[10] = KEYCODE; 00088 tx_data[11] = TX_CHECKCODE; 00089 00090 tx = 0; 00091 } 00092 00093 sensor.putc(tx_data[tx]); 00094 tx++; 00095 } 00096 */
Generated on Wed Jul 27 2022 02:26:51 by 1.7.2