final_slave

Dependencies:   TextLCD mbed

Committer:
akudohune
Date:
Wed Jun 19 08:42:10 2013 +0000
Revision:
0:7d0227dcc289
slave

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akudohune 0:7d0227dcc289 1
akudohune 0:7d0227dcc289 2 #include "mbed.h"
akudohune 0:7d0227dcc289 3 #include "uart1.h"
akudohune 0:7d0227dcc289 4
akudohune 0:7d0227dcc289 5 extern Serial device;
akudohune 0:7d0227dcc289 6 extern BusOut mbedleds;
akudohune 0:7d0227dcc289 7 //extern Serial pc;
akudohune 0:7d0227dcc289 8 extern int direction;
akudohune 0:7d0227dcc289 9 extern int Distance;
akudohune 0:7d0227dcc289 10 extern int IR_found;
akudohune 0:7d0227dcc289 11 extern int AveDistance;
akudohune 0:7d0227dcc289 12 extern uint16_t ultrasonicVal[4];
akudohune 0:7d0227dcc289 13
akudohune 0:7d0227dcc289 14 uint8_t xbee;
akudohune 0:7d0227dcc289 15 uint8_t data[4];
akudohune 0:7d0227dcc289 16 int irDistance[6];
akudohune 0:7d0227dcc289 17
akudohune 0:7d0227dcc289 18 extern uint8_t data2[5];
akudohune 0:7d0227dcc289 19
akudohune 0:7d0227dcc289 20 void dev_rx()
akudohune 0:7d0227dcc289 21 {
akudohune 0:7d0227dcc289 22 static uint8_t count2 = 0;
akudohune 0:7d0227dcc289 23 static uint8_t RecData[RECEIVE_DATA_NUM];
akudohune 0:7d0227dcc289 24
akudohune 0:7d0227dcc289 25 RecData[count2] = device.getc();
akudohune 0:7d0227dcc289 26
akudohune 0:7d0227dcc289 27 if(RecData[KEY2] == KEYCODE2){
akudohune 0:7d0227dcc289 28 count2++;
akudohune 0:7d0227dcc289 29 }else{
akudohune 0:7d0227dcc289 30 count2 = 0;
akudohune 0:7d0227dcc289 31 }
akudohune 0:7d0227dcc289 32 if(count2 >= RECEIVE_DATA_NUM){
akudohune 0:7d0227dcc289 33 if(RecData[CHECK2] == CHECKCODE2){
akudohune 0:7d0227dcc289 34 //mbedleds = 15;
akudohune 0:7d0227dcc289 35 data[0] = RecData[DATA1];
akudohune 0:7d0227dcc289 36 data[1] = RecData[DATA2];
akudohune 0:7d0227dcc289 37 data[2] = RecData[DATA3];
akudohune 0:7d0227dcc289 38 data[3] = RecData[DATA4];
akudohune 0:7d0227dcc289 39 irDistance[0] = (RecData[DISTANCE1] << 8) + RecData[DISTANCE1_2];
akudohune 0:7d0227dcc289 40 irDistance[1] = (RecData[DISTANCE2] << 8) + RecData[DISTANCE2_2];
akudohune 0:7d0227dcc289 41 irDistance[2] = (RecData[DISTANCE3] << 8) + RecData[DISTANCE3_2];
akudohune 0:7d0227dcc289 42 irDistance[3] = (RecData[DISTANCE4] << 8) + RecData[DISTANCE4_2];
akudohune 0:7d0227dcc289 43 irDistance[4] = (RecData[DISTANCE5] << 8) + RecData[DISTANCE5_2];
akudohune 0:7d0227dcc289 44 irDistance[5] = (RecData[DISTANCE6] << 8) + RecData[DISTANCE6_2];
akudohune 0:7d0227dcc289 45 //pc.printf("%d\n",data[2]);
akudohune 0:7d0227dcc289 46 }
akudohune 0:7d0227dcc289 47 count2 = 0;
akudohune 0:7d0227dcc289 48 }
akudohune 0:7d0227dcc289 49 }
akudohune 0:7d0227dcc289 50
akudohune 0:7d0227dcc289 51 void dev_tx()
akudohune 0:7d0227dcc289 52 {
akudohune 0:7d0227dcc289 53 static uint8_t count = 0;
akudohune 0:7d0227dcc289 54 static uint8_t SendData0[SEND_DATA_NUM];
akudohune 0:7d0227dcc289 55
akudohune 0:7d0227dcc289 56 if(count >= SEND_DATA_NUM){
akudohune 0:7d0227dcc289 57 xbee = data2[0];
akudohune 0:7d0227dcc289 58 SendData0[KEY] = KEYCODE;
akudohune 0:7d0227dcc289 59 SendData0[DIRECTIONN] = direction;
akudohune 0:7d0227dcc289 60 SendData0[DISTANCE] = AveDistance;
akudohune 0:7d0227dcc289 61 SendData0[SONIC1_1] = ultrasonicVal[0];
akudohune 0:7d0227dcc289 62 SendData0[SONIC1_2] = (ultrasonicVal[0] >> 8);
akudohune 0:7d0227dcc289 63 SendData0[SONIC2_1] = ultrasonicVal[1];
akudohune 0:7d0227dcc289 64 SendData0[SONIC2_2] = (ultrasonicVal[1] >> 8);
akudohune 0:7d0227dcc289 65 SendData0[SONIC3_1] = ultrasonicVal[2];
akudohune 0:7d0227dcc289 66 SendData0[SONIC3_2] = (ultrasonicVal[2] >> 8);
akudohune 0:7d0227dcc289 67 SendData0[SONIC4_1] = ultrasonicVal[3];
akudohune 0:7d0227dcc289 68 SendData0[SONIC4_2] = (ultrasonicVal[3] >> 8);
akudohune 0:7d0227dcc289 69 SendData0[IR_FOUND] = IR_found;
akudohune 0:7d0227dcc289 70 SendData0[XBEE] = xbee;
akudohune 0:7d0227dcc289 71 SendData0[CHECK] = CHECKCODE;
akudohune 0:7d0227dcc289 72
akudohune 0:7d0227dcc289 73 //pc.printf("%d\t%d\t%d\t%d\n",SendData0[DIRECTIONN],SendData0[DISTANCE],SendData0[IR_FOUND],SendData0[CHECK]);
akudohune 0:7d0227dcc289 74
akudohune 0:7d0227dcc289 75 count = 0;
akudohune 0:7d0227dcc289 76 }
akudohune 0:7d0227dcc289 77 device.putc(SendData0[count]);
akudohune 0:7d0227dcc289 78
akudohune 0:7d0227dcc289 79 count++;
akudohune 0:7d0227dcc289 80 }