hello

Committer:
akudohune
Date:
Sat May 04 23:56:15 2013 +0000
Revision:
0:79ccc03117ea
cuppppp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akudohune 0:79ccc03117ea 1
akudohune 0:79ccc03117ea 2 #include "mbed.h"
akudohune 0:79ccc03117ea 3 #include "uart1.h"
akudohune 0:79ccc03117ea 4 #include "HMC6352.h"
akudohune 0:79ccc03117ea 5
akudohune 0:79ccc03117ea 6 //extern Serial pc;
akudohune 0:79ccc03117ea 7 extern Serial device2;
akudohune 0:79ccc03117ea 8 extern HMC6352 compass;
akudohune 0:79ccc03117ea 9 extern BusOut mbedleds;
akudohune 0:79ccc03117ea 10 extern DigitalOut led1;
akudohune 0:79ccc03117ea 11 extern DigitalOut led2;
akudohune 0:79ccc03117ea 12 extern DigitalOut led3;
akudohune 0:79ccc03117ea 13 extern DigitalOut led4;
akudohune 0:79ccc03117ea 14
akudohune 0:79ccc03117ea 15 extern uint8_t state;
akudohune 0:79ccc03117ea 16 extern uint8_t hold_flag;
akudohune 0:79ccc03117ea 17
akudohune 0:79ccc03117ea 18 int diff;
akudohune 0:79ccc03117ea 19 uint16_t ultrasonicVal[4];
akudohune 0:79ccc03117ea 20 uint8_t direction;
akudohune 0:79ccc03117ea 21 uint8_t Distance;
akudohune 0:79ccc03117ea 22 uint8_t IR_found;
akudohune 0:79ccc03117ea 23 uint8_t xbee;
akudohune 0:79ccc03117ea 24
akudohune 0:79ccc03117ea 25 void dev_rx()
akudohune 0:79ccc03117ea 26 {
akudohune 0:79ccc03117ea 27 static uint8_t count = 0;
akudohune 0:79ccc03117ea 28 static uint8_t RecData[RECEIVE_DATA_NUM];
akudohune 0:79ccc03117ea 29 static uint8_t last_data;
akudohune 0:79ccc03117ea 30
akudohune 0:79ccc03117ea 31 RecData[count] = device2.getc();
akudohune 0:79ccc03117ea 32
akudohune 0:79ccc03117ea 33 if(RecData[KEY] == KEYCODE){
akudohune 0:79ccc03117ea 34 count++;
akudohune 0:79ccc03117ea 35 }else{
akudohune 0:79ccc03117ea 36 count = 0;
akudohune 0:79ccc03117ea 37 }
akudohune 0:79ccc03117ea 38 if(count >= RECEIVE_DATA_NUM){
akudohune 0:79ccc03117ea 39 if(RecData[CHECK] == CHECKCODE){
akudohune 0:79ccc03117ea 40 //mbedleds = 15;
akudohune 0:79ccc03117ea 41
akudohune 0:79ccc03117ea 42 if((RecData[DIRECTION] <= 15) || (RecData[DIRECTION] == 200)){
akudohune 0:79ccc03117ea 43 direction = RecData[DIRECTION];
akudohune 0:79ccc03117ea 44 }
akudohune 0:79ccc03117ea 45 if(RecData[DISTANCE] <= 180){
akudohune 0:79ccc03117ea 46 Distance = RecData[DISTANCE];
akudohune 0:79ccc03117ea 47 }
akudohune 0:79ccc03117ea 48
akudohune 0:79ccc03117ea 49 ultrasonicVal[0] = (int)((RecData[SONIC1_1] + (RecData[SONIC1_2] << 8)) / 10.0);
akudohune 0:79ccc03117ea 50 if(ultrasonicVal[0] == 6553)ultrasonicVal[0] = 0xFFFF;
akudohune 0:79ccc03117ea 51 ultrasonicVal[1] = (int)((RecData[SONIC2_1] + (RecData[SONIC2_2] << 8)) / 10.0);
akudohune 0:79ccc03117ea 52 if(ultrasonicVal[1] == 6553)ultrasonicVal[1] = 0xFFFF;
akudohune 0:79ccc03117ea 53 ultrasonicVal[2] = (int)((RecData[SONIC3_1] + (RecData[SONIC3_2] << 8)) / 10.0);
akudohune 0:79ccc03117ea 54 if(ultrasonicVal[2] == 6553)ultrasonicVal[2] = 0xFFFF;
akudohune 0:79ccc03117ea 55 ultrasonicVal[3] = (int)((RecData[SONIC4_1] + (RecData[SONIC4_2] << 8)) / 10.0);
akudohune 0:79ccc03117ea 56 if(ultrasonicVal[3] == 6553)ultrasonicVal[3] = 0xFFFF;
akudohune 0:79ccc03117ea 57
akudohune 0:79ccc03117ea 58 if((RecData[IR_FOUND] == 0) || (RecData[IR_FOUND] == 1)){
akudohune 0:79ccc03117ea 59 IR_found = RecData[IR_FOUND];
akudohune 0:79ccc03117ea 60 }
akudohune 0:79ccc03117ea 61 xbee = RecData[XBEE];
akudohune 0:79ccc03117ea 62 xbee = 0;
akudohune 0:79ccc03117ea 63
akudohune 0:79ccc03117ea 64
akudohune 0:79ccc03117ea 65 //pc.printf("%f\t%f\t%f\t%f\n",ultrasonicVal[0],ultrasonicVal[1],ultrasonicVal[2],ultrasonicVal[3]);
akudohune 0:79ccc03117ea 66 //pc.printf("%d\n",xbee);
akudohune 0:79ccc03117ea 67 //pc.printf("%d\n",IR_found);
akudohune 0:79ccc03117ea 68
akudohune 0:79ccc03117ea 69 diff = last_data - Distance;
akudohune 0:79ccc03117ea 70 last_data = Distance;
akudohune 0:79ccc03117ea 71 }
akudohune 0:79ccc03117ea 72 count = 0;
akudohune 0:79ccc03117ea 73 }
akudohune 0:79ccc03117ea 74 }
akudohune 0:79ccc03117ea 75
akudohune 0:79ccc03117ea 76 void dev_tx()
akudohune 0:79ccc03117ea 77 {
akudohune 0:79ccc03117ea 78 static uint8_t count2 = 0;
akudohune 0:79ccc03117ea 79 static uint8_t SendData[SEND_DATA_NUM];
akudohune 0:79ccc03117ea 80
akudohune 0:79ccc03117ea 81 if(count2 >= SEND_DATA_NUM){
akudohune 0:79ccc03117ea 82 SendData[KEY2] = KEYCODE2;
akudohune 0:79ccc03117ea 83 SendData[DATA1] = ((int)(compass.sample())) >> 8 ;
akudohune 0:79ccc03117ea 84 SendData[DATA2] = (int)(compass.sample());
akudohune 0:79ccc03117ea 85 SendData[DATA3] = state;
akudohune 0:79ccc03117ea 86 SendData[DATA4] = 1;
akudohune 0:79ccc03117ea 87 SendData[CHECK2] = CHECKCODE2;
akudohune 0:79ccc03117ea 88
akudohune 0:79ccc03117ea 89 count2 = 0;
akudohune 0:79ccc03117ea 90
akudohune 0:79ccc03117ea 91 }
akudohune 0:79ccc03117ea 92 device2.putc(SendData[count2]);
akudohune 0:79ccc03117ea 93
akudohune 0:79ccc03117ea 94 count2++;
akudohune 0:79ccc03117ea 95 }