main
Dependencies: TextLCD mbed PID
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]) 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]) 00007 #define DATA_NUM 11 00008 #define CHECK (DATA_NUM - 1) 00009 #define ALL_IR 11 00010 00011 00012 extern Serial xbee; 00013 extern Serial sensor; 00014 extern Serial pc; 00015 extern DigitalOut myled[4]; 00016 00017 extern uint8_t value_ir, ir_num, ir_dis, ball_on; 00018 extern uint8_t ping[4]; 00019 extern uint8_t line[4]; 00020 extern uint8_t ir_max, ir_num; 00021 extern int compass; 00022 00023 int count = 0; 00024 void xbee_tx(){ 00025 xbee.putc(1); 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 void micon_rx(){ 00038 00039 static uint8_t rx; 00040 static int rx_data[DATA_NUM]; 00041 00042 rx_data[rx] = sensor.getc(); 00043 00044 if(rx_data[0] == KEYCODE){ 00045 rx++; 00046 } 00047 00048 if(rx >= DATA_NUM){ 00049 if(rx_data[CHECK] == RX_CHECKCODE){ 00050 value_ir = rx_data[1]; 00051 ir_num = rx_data[2]; 00052 ping[FRONT] = rx_data[3]; 00053 ping[LEFT] = rx_data[4]; 00054 ping[BACK] = rx_data[5]; 00055 ping[RIGHT] = rx_data[6]; 00056 compass = rx_data[7] + rx_data[8]; 00057 ir_dis = rx_data[9]; 00058 //ball_on = rx_data[10]; 00059 /* line[FRONT] = rx_data[7]; 00060 line[LEFT] = rx_data[8]; 00061 line[BACK] = rx_data[9]; 00062 line[RIGHT] = rx_data[10]; 00063 */ 00064 //pc.printf("%d %d\n", rx_data[1], rx_data[2]); 00065 //pc.printf("%d %d %d %d\n", rx_data[3], rx_data[4], rx_data[5], rx_data[6]); 00066 //pc.printf("%d %d %d %d\n", rx_data[7], rx_data[8], rx_data[9], rx_data[10]); 00067 //pc.printf("%d %d %d\n", rx_data[7], rx_data[8], compass); 00068 //pc.printf("%d\n", rx_data[7]); 00069 //pc.printf("%d\t%d\t%d\t%d\n", ping[FRONT], ping[LEFT], ping[BACK], ping[RIGHT]); 00070 //pc.printf("%d %d %d\n", ping[LEFT], ping[RIGHT], ping[LEFT] + ping[RIGHT]); 00071 //pc.printf("%d\t%d\t%d\t%d\n", ir_dis, ball_on, value_ir, ir_num); 00072 } 00073 rx = 0; 00074 } 00075 //pc.printf("%d\n", rx_data[rx]); 00076 } 00077 00078 /* 00079 void micon_tx(){ 00080 00081 static uint8_t tx; 00082 static uint8_t tx_data[DATA_NUM]; 00083 00084 if(tx >= DATA_NUM){ 00085 tx_data[0] = KEYCODE; 00086 tx_data[1] = KEYCODE; 00087 tx_data[2] = KEYCODE; 00088 tx_data[3] = KEYCODE; 00089 tx_data[4] = KEYCODE; 00090 tx_data[5] = KEYCODE; 00091 tx_data[6] = KEYCODE; 00092 tx_data[7] = KEYCODE; 00093 tx_data[8] = KEYCODE; 00094 tx_data[9] = KEYCODE; 00095 tx_data[10] = KEYCODE; 00096 tx_data[11] = TX_CHECKCODE; 00097 00098 tx = 0; 00099 } 00100 00101 sensor.putc(tx_data[tx]); 00102 tx++; 00103 } 00104 */
Generated on Thu Jul 14 2022 13:22:08 by 1.7.2