version 3 通信方式,マイコン等に変更あり

Dependencies:   AQM0802A PID Servo mbed

Committer:
ryuna
Date:
Wed Mar 11 01:03:00 2015 +0000
Revision:
4:2857f273a7f4
Child:
5:09afcbe0c18f
without multiserial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryuna 4:2857f273a7f4 1 #include "mbed.h"
ryuna 4:2857f273a7f4 2
ryuna 4:2857f273a7f4 3
ryuna 4:2857f273a7f4 4 #define KEYCODE 0xAA
ryuna 4:2857f273a7f4 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])
ryuna 4:2857f273a7f4 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])
ryuna 4:2857f273a7f4 7 #define DATA_NUM 11
ryuna 4:2857f273a7f4 8 #define CHECK (DATA_NUM - 1)
ryuna 4:2857f273a7f4 9
ryuna 4:2857f273a7f4 10
ryuna 4:2857f273a7f4 11 extern Serial Mbed;
ryuna 4:2857f273a7f4 12 extern Serial pc;
ryuna 4:2857f273a7f4 13
ryuna 4:2857f273a7f4 14 extern uint8_t PingData[4];
ryuna 4:2857f273a7f4 15 extern uint8_t IrData[3];
ryuna 4:2857f273a7f4 16 extern uint8_t IrNum;
ryuna 4:2857f273a7f4 17 extern unsigned int Compass;
ryuna 4:2857f273a7f4 18
ryuna 4:2857f273a7f4 19
ryuna 4:2857f273a7f4 20
ryuna 4:2857f273a7f4 21 void micon_rx(){
ryuna 4:2857f273a7f4 22
ryuna 4:2857f273a7f4 23 static uint8_t rx;
ryuna 4:2857f273a7f4 24 static int rx_data[DATA_NUM];
ryuna 4:2857f273a7f4 25
ryuna 4:2857f273a7f4 26 rx_data[rx] = Mbed.getc();
ryuna 4:2857f273a7f4 27
ryuna 4:2857f273a7f4 28 if(rx_data[0] == KEYCODE){
ryuna 4:2857f273a7f4 29 rx++;
ryuna 4:2857f273a7f4 30 }
ryuna 4:2857f273a7f4 31
ryuna 4:2857f273a7f4 32 if(rx >= DATA_NUM){
ryuna 4:2857f273a7f4 33 if(rx_data[CHECK] == RX_CHECKCODE){
ryuna 4:2857f273a7f4 34 IrData[0] = rx_data[1];
ryuna 4:2857f273a7f4 35 IrData[1] = rx_data[2];
ryuna 4:2857f273a7f4 36 IrData[2] = rx_data[3];
ryuna 4:2857f273a7f4 37 PingData[0] = rx_data[4];
ryuna 4:2857f273a7f4 38 PingData[1] = rx_data[5];
ryuna 4:2857f273a7f4 39 PingData[2] = rx_data[6];
ryuna 4:2857f273a7f4 40 PingData[3] = rx_data[7];
ryuna 4:2857f273a7f4 41 Compass = rx_data[8] + rx_data[9];
ryuna 4:2857f273a7f4 42
ryuna 4:2857f273a7f4 43 if((IrData[0] == 255)||(IrData[1] == 255)||(IrData[2] == 255)){
ryuna 4:2857f273a7f4 44 IrNum = 12;
ryuna 4:2857f273a7f4 45
ryuna 4:2857f273a7f4 46 }else{
ryuna 4:2857f273a7f4 47 IrNum = IrData[0]/12;
ryuna 4:2857f273a7f4 48 }
ryuna 4:2857f273a7f4 49 //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]);
ryuna 4:2857f273a7f4 50 //pc.printf("compass: %d\n",compass);
ryuna 4:2857f273a7f4 51 //pc.printf("ping0:%d\tping1:%d\tping2:%d\tping3:%d\n",ping[0],ping[1],ping[2],ping[3]);
ryuna 4:2857f273a7f4 52 //pc.printf("ir_min:%d\tir_num:%d\tir_main:%d\n",ir_min,ir_num,ir_main);
ryuna 4:2857f273a7f4 53
ryuna 4:2857f273a7f4 54 }
ryuna 4:2857f273a7f4 55 rx = 0;
ryuna 4:2857f273a7f4 56 }
ryuna 4:2857f273a7f4 57
ryuna 4:2857f273a7f4 58 //pc.printf("%d\n", rx_data[rx]);
ryuna 4:2857f273a7f4 59 }
ryuna 4:2857f273a7f4 60 /*
ryuna 4:2857f273a7f4 61 void micon_tx(){
ryuna 4:2857f273a7f4 62
ryuna 4:2857f273a7f4 63 static uint8_t tx;
ryuna 4:2857f273a7f4 64 static uint8_t tx_data[DATA_NUM];
ryuna 4:2857f273a7f4 65
ryuna 4:2857f273a7f4 66 if(tx >= DATA_NUM){
ryuna 4:2857f273a7f4 67 tx_data[0] = KEYCODE;
ryuna 4:2857f273a7f4 68 tx_data[1] = KEYCODE;
ryuna 4:2857f273a7f4 69 tx_data[2] = KEYCODE;
ryuna 4:2857f273a7f4 70 tx_data[3] = KEYCODE;
ryuna 4:2857f273a7f4 71 tx_data[4] = KEYCODE;
ryuna 4:2857f273a7f4 72 tx_data[5] = KEYCODE;
ryuna 4:2857f273a7f4 73 tx_data[6] = KEYCODE;
ryuna 4:2857f273a7f4 74 tx_data[7] = KEYCODE;
ryuna 4:2857f273a7f4 75 tx_data[8] = KEYCODE;
ryuna 4:2857f273a7f4 76 tx_data[9] = KEYCODE;
ryuna 4:2857f273a7f4 77 tx_data[10] = KEYCODE;
ryuna 4:2857f273a7f4 78 tx_data[11] = TX_CHECKCODE;
ryuna 4:2857f273a7f4 79
ryuna 4:2857f273a7f4 80 tx = 0;
ryuna 4:2857f273a7f4 81 }
ryuna 4:2857f273a7f4 82
ryuna 4:2857f273a7f4 83 sensor.putc(tx_data[tx]);
ryuna 4:2857f273a7f4 84 tx++;
ryuna 4:2857f273a7f4 85 }
ryuna 4:2857f273a7f4 86 */