sensor

Dependencies:   HMC6352 mbed

Fork of program_SensorBlock by Fumiya Fujisawa

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers usart.cpp Source File

usart.cpp

00001 #include "mbed.h"
00002 
00003 #define KEYCODE 0xAA
00004 #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])
00005 #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])
00006 #define DATA_NUM 12
00007 #define CHECK (DATA_NUM - 1)
00008 #define ALL_IR 12
00009 #define ALL_PING 4
00010 #define ALL_LINE 4
00011 
00012 
00013 
00014 extern Serial sensor;
00015 extern Serial pc;
00016 extern unsigned int value_ping[ALL_PING];
00017 extern unsigned int value_ir[ALL_IR];
00018 extern unsigned int value_ir_min;
00019 extern unsigned int ir_min_num;
00020 extern unsigned int value_line[ALL_LINE];
00021 extern unsigned int value_compass[2];
00022 /*
00023 void micon_rx(){
00024     
00025     static uint8_t rx;
00026     static uint8_t rx_data[DATA_NUM];
00027     
00028     rx_data[rx] = sensor.getc();
00029     
00030     if(rx_data[0] == KEYCODE){
00031         rx++;
00032     }
00033     
00034     if(rx >= DATA_NUM){
00035         if(rx_data[CHECK] == RX_CHECKCODE){
00036              pc.printf("%d %d %d %d %d\n", rx_data[1], rx_data[2], rx_data[3], rx_data[4], rx_data[5]);
00037         }  
00038      rx = 0;   
00039     }
00040 
00041 }
00042 */
00043 
00044 void micon_tx(){
00045     
00046     static uint8_t tx;
00047     static uint8_t tx_data[DATA_NUM];
00048     
00049     if(tx >= DATA_NUM){
00050         tx_data[0] = KEYCODE;
00051         tx_data[1] = value_ir_min;
00052         tx_data[2] = ir_min_num;
00053         tx_data[3] = value_ping[0];
00054         tx_data[4] = value_ping[1];
00055         tx_data[5] = value_ping[2];
00056         tx_data[6] = value_ping[3];
00057 /*        tx_data[7] = value_line[0];
00058         tx_data[8] = value_line[1];
00059         tx_data[9] = value_line[2];
00060         tx_data[10] = value_line[3];
00061 */
00062         tx_data[7] = value_compass[0];
00063         tx_data[8] = value_compass[1];
00064         tx_data[9] = value_ir[10];
00065         tx_data[10] = value_ir[11];
00066         tx_data[11] = TX_CHECKCODE;
00067         
00068         tx = 0;
00069     }
00070     
00071     
00072     sensor.putc(tx_data[tx]);
00073     //pc.printf("%d\n", tx_data[tx]);
00074     tx++;
00075     //wait(0.1);
00076 }