version 3 通信方式,マイコン等に変更あり
Dependencies: AQM0802A PID Servo mbed
usart.cpp
00001 #include "mbed.h" 00002 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 Mbed; 00012 extern Serial pc; 00013 00014 extern uint8_t PingData[4]; 00015 extern uint8_t IrData[3]; 00016 extern uint8_t IrNum; 00017 extern int Compass; 00018 00019 00020 00021 void micon_rx(){ 00022 00023 static uint8_t rx; 00024 static int rx_data[DATA_NUM]; 00025 00026 rx_data[rx] = Mbed.getc(); 00027 00028 if(rx_data[0] == KEYCODE){ 00029 rx++; 00030 } 00031 00032 if(rx >= DATA_NUM){ 00033 if(rx_data[CHECK] == RX_CHECKCODE){ 00034 IrData[0] = rx_data[1]; 00035 IrData[1] = rx_data[2]; 00036 IrData[2] = rx_data[3]; 00037 PingData[0] = rx_data[4]; 00038 PingData[1] = rx_data[5]; 00039 PingData[2] = rx_data[6]; 00040 PingData[3] = rx_data[7]; 00041 Compass = rx_data[8] | rx_data[9]<<8; 00042 00043 if((IrData[0] == 255)||(IrData[1] == 255)||(IrData[2] == 255)){ 00044 IrNum = 12; 00045 00046 }else{ 00047 IrNum = IrData[0]/12; 00048 } 00049 //pc.printf("%d\t %d\t %d\t %d\t %d\t %d\t\n",rx_data[3],rx_data[4],rx_data[5],rx_data[6],rx_data[7],rx_data[8]); 00050 //pc.printf("compass: %d\n",compass); 00051 //pc.printf("ping0:%d\tping1:%d\tping2:%d\tping3:%d\n",ping[0],ping[1],ping[2],ping[3]); 00052 //pc.printf("ir_min:%d\tir_num:%d\tir_main:%d\n",ir_min,ir_num,ir_main); 00053 00054 } 00055 rx = 0; 00056 } 00057 00058 //pc.printf("%d\n", rx_data[rx]); 00059 } 00060 /* 00061 void micon_tx(){ 00062 00063 static uint8_t tx; 00064 static uint8_t tx_data[DATA_NUM]; 00065 00066 if(tx >= DATA_NUM){ 00067 tx_data[0] = KEYCODE; 00068 tx_data[1] = KEYCODE; 00069 tx_data[2] = KEYCODE; 00070 tx_data[3] = KEYCODE; 00071 tx_data[4] = KEYCODE; 00072 tx_data[5] = KEYCODE; 00073 tx_data[6] = KEYCODE; 00074 tx_data[7] = KEYCODE; 00075 tx_data[8] = KEYCODE; 00076 tx_data[9] = KEYCODE; 00077 tx_data[10] = KEYCODE; 00078 tx_data[11] = TX_CHECKCODE; 00079 00080 tx = 0; 00081 } 00082 00083 sensor.putc(tx_data[tx]); 00084 tx++; 00085 } 00086 */
Generated on Wed Jul 20 2022 04:02:24 by 1.7.2