fuji-usart

Dependencies:   mbed

Committer:
com3
Date:
Sat Feb 22 07:21:26 2014 +0000
Revision:
2:6a8450240660
Parent:
0:7332c4bbfb16
usart

Who changed what in which revision?

UserRevisionLine numberNew contents of line
com3 0:7332c4bbfb16 1 #include "mbed.h"
com3 0:7332c4bbfb16 2
com3 0:7332c4bbfb16 3 #define KEYCODE 0xAA
com3 0:7332c4bbfb16 4 #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]^tx_data[10])
com3 0:7332c4bbfb16 5 #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]^rx_data[10])
com3 0:7332c4bbfb16 6 #define DATA_NUM 12
com3 0:7332c4bbfb16 7 #define CHECK (DATA_NUM - 1)
com3 0:7332c4bbfb16 8 #define ALL_IR 10
com3 0:7332c4bbfb16 9
com3 0:7332c4bbfb16 10
com3 0:7332c4bbfb16 11
com3 0:7332c4bbfb16 12 extern Serial sensor;
com3 0:7332c4bbfb16 13 extern Serial pc;
com3 0:7332c4bbfb16 14 extern unsigned int hangar[ALL_IR];
com3 0:7332c4bbfb16 15
com3 0:7332c4bbfb16 16 void micon_rx(){
com3 0:7332c4bbfb16 17
com3 0:7332c4bbfb16 18 static uint8_t rx;
com3 0:7332c4bbfb16 19 static uint8_t rx_data[DATA_NUM];
com3 0:7332c4bbfb16 20
com3 0:7332c4bbfb16 21 rx_data[rx] = sensor.getc();
com3 0:7332c4bbfb16 22
com3 0:7332c4bbfb16 23 if(rx_data[0] == KEYCODE){
com3 0:7332c4bbfb16 24 rx++;
com3 0:7332c4bbfb16 25 }
com3 0:7332c4bbfb16 26
com3 0:7332c4bbfb16 27 if(rx >= DATA_NUM){
com3 0:7332c4bbfb16 28 if(rx_data[CHECK] == RX_CHECKCODE){
com3 0:7332c4bbfb16 29 pc.printf("%d %d %d %d %d\n", rx_data[1], rx_data[2], rx_data[3], rx_data[4], rx_data[5]);
com3 0:7332c4bbfb16 30 }
com3 0:7332c4bbfb16 31 rx = 0;
com3 0:7332c4bbfb16 32 }
com3 0:7332c4bbfb16 33
com3 0:7332c4bbfb16 34 }
com3 0:7332c4bbfb16 35
com3 0:7332c4bbfb16 36 void micon_tx(){
com3 0:7332c4bbfb16 37
com3 0:7332c4bbfb16 38 static uint8_t tx;
com3 0:7332c4bbfb16 39 static uint8_t tx_data[DATA_NUM];
com3 0:7332c4bbfb16 40
com3 0:7332c4bbfb16 41 if(tx >= DATA_NUM){
com3 0:7332c4bbfb16 42 tx_data[0] = KEYCODE;
com3 0:7332c4bbfb16 43 tx_data[1] = hangar[0];
com3 0:7332c4bbfb16 44 tx_data[2] = hangar[1];
com3 0:7332c4bbfb16 45 tx_data[3] = hangar[2];
com3 0:7332c4bbfb16 46 tx_data[4] = hangar[3];
com3 0:7332c4bbfb16 47 tx_data[5] = hangar[4];
com3 0:7332c4bbfb16 48 tx_data[6] = hangar[5];
com3 0:7332c4bbfb16 49 tx_data[7] = hangar[6];
com3 0:7332c4bbfb16 50 tx_data[8] = hangar[7];
com3 0:7332c4bbfb16 51 tx_data[9] = hangar[8];
com3 0:7332c4bbfb16 52 tx_data[10] = hangar[9];
com3 0:7332c4bbfb16 53 tx_data[11] = TX_CHECKCODE;
com3 0:7332c4bbfb16 54
com3 0:7332c4bbfb16 55 tx = 0;
com3 0:7332c4bbfb16 56 }
com3 0:7332c4bbfb16 57
com3 0:7332c4bbfb16 58 sensor.putc(tx_data[tx]);
com3 0:7332c4bbfb16 59 //pc.printf("%d\n", tx_data[tx]);
com3 0:7332c4bbfb16 60 tx++;
com3 0:7332c4bbfb16 61 //wait(0.1);
com3 0:7332c4bbfb16 62 }