ryo seki
/
serialSend5_5
final_slave
uart1.cpp@0:7d0227dcc289, 2013-06-19 (annotated)
- Committer:
- akudohune
- Date:
- Wed Jun 19 08:42:10 2013 +0000
- Revision:
- 0:7d0227dcc289
slave
Who changed what in which revision?
User | Revision | Line number | New 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 | } |