yusuke takahashi
/
Xbee_test
go
main.cpp@0:30c83ede1f0b, 2013-03-28 (annotated)
- Committer:
- yusuke_robocup
- Date:
- Thu Mar 28 07:43:56 2013 +0000
- Revision:
- 0:30c83ede1f0b
usart
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yusuke_robocup | 0:30c83ede1f0b | 1 | #include "mbed.h" |
yusuke_robocup | 0:30c83ede1f0b | 2 | |
yusuke_robocup | 0:30c83ede1f0b | 3 | #define KEYCODE 120 |
yusuke_robocup | 0:30c83ede1f0b | 4 | #define GOSA 8 |
yusuke_robocup | 0:30c83ede1f0b | 5 | |
yusuke_robocup | 0:30c83ede1f0b | 6 | BusOut mbedleds(LED4,LED3,LED2,LED1); |
yusuke_robocup | 0:30c83ede1f0b | 7 | |
yusuke_robocup | 0:30c83ede1f0b | 8 | Serial device(p13, p14); // tx, rx |
yusuke_robocup | 0:30c83ede1f0b | 9 | |
yusuke_robocup | 0:30c83ede1f0b | 10 | Serial pc(USBTX, USBRX); // tx, rx |
yusuke_robocup | 0:30c83ede1f0b | 11 | |
yusuke_robocup | 0:30c83ede1f0b | 12 | volatile int8_t data[8]; |
yusuke_robocup | 0:30c83ede1f0b | 13 | volatile uint8_t value[4]; |
yusuke_robocup | 0:30c83ede1f0b | 14 | |
yusuke_robocup | 0:30c83ede1f0b | 15 | void dev_rx () { |
yusuke_robocup | 0:30c83ede1f0b | 16 | static uint8_t count; |
yusuke_robocup | 0:30c83ede1f0b | 17 | |
yusuke_robocup | 0:30c83ede1f0b | 18 | data[count] = device.getc(); |
yusuke_robocup | 0:30c83ede1f0b | 19 | |
yusuke_robocup | 0:30c83ede1f0b | 20 | if(data[0] == KEYCODE){ |
yusuke_robocup | 0:30c83ede1f0b | 21 | count++; |
yusuke_robocup | 0:30c83ede1f0b | 22 | } else { |
yusuke_robocup | 0:30c83ede1f0b | 23 | count = 0; |
yusuke_robocup | 0:30c83ede1f0b | 24 | data[0] = 0; |
yusuke_robocup | 0:30c83ede1f0b | 25 | data[1] = 0; //左スティック縦 |
yusuke_robocup | 0:30c83ede1f0b | 26 | data[2] = 0; //左スティック横 |
yusuke_robocup | 0:30c83ede1f0b | 27 | data[3] = 0; //右スティック縦 |
yusuke_robocup | 0:30c83ede1f0b | 28 | data[4] = 0; //右スティック横 |
yusuke_robocup | 0:30c83ede1f0b | 29 | data[5] = 0; //Lボタン |
yusuke_robocup | 0:30c83ede1f0b | 30 | data[6] = 0; //Rボタン |
yusuke_robocup | 0:30c83ede1f0b | 31 | data[7] = 0; |
yusuke_robocup | 0:30c83ede1f0b | 32 | } |
yusuke_robocup | 0:30c83ede1f0b | 33 | if(count > 7){ |
yusuke_robocup | 0:30c83ede1f0b | 34 | if(data[7] == (data[1] ^ data[2] ^ data[3] ^ data[4] ^ data[5] ^ data[6])){ |
yusuke_robocup | 0:30c83ede1f0b | 35 | if(data[1] < 0){ |
yusuke_robocup | 0:30c83ede1f0b | 36 | value[0] = (-(data[1] + data[1])); |
yusuke_robocup | 0:30c83ede1f0b | 37 | } else { |
yusuke_robocup | 0:30c83ede1f0b | 38 | value[0] = (data[1] + data[1]); |
yusuke_robocup | 0:30c83ede1f0b | 39 | } |
yusuke_robocup | 0:30c83ede1f0b | 40 | if(data[2] < 0){ |
yusuke_robocup | 0:30c83ede1f0b | 41 | value[1] = (-(data[2] + data[2])); |
yusuke_robocup | 0:30c83ede1f0b | 42 | } else { |
yusuke_robocup | 0:30c83ede1f0b | 43 | value[1] = (data[2] + data[2]); |
yusuke_robocup | 0:30c83ede1f0b | 44 | } |
yusuke_robocup | 0:30c83ede1f0b | 45 | if(data[4] < 0){ |
yusuke_robocup | 0:30c83ede1f0b | 46 | value[2] = (-(data[4] + data[4])); |
yusuke_robocup | 0:30c83ede1f0b | 47 | } else { |
yusuke_robocup | 0:30c83ede1f0b | 48 | value[2] = (data[4] + data[4]); |
yusuke_robocup | 0:30c83ede1f0b | 49 | } |
yusuke_robocup | 0:30c83ede1f0b | 50 | } |
yusuke_robocup | 0:30c83ede1f0b | 51 | count = 0; |
yusuke_robocup | 0:30c83ede1f0b | 52 | } |
yusuke_robocup | 0:30c83ede1f0b | 53 | |
yusuke_robocup | 0:30c83ede1f0b | 54 | } |
yusuke_robocup | 0:30c83ede1f0b | 55 | |
yusuke_robocup | 0:30c83ede1f0b | 56 | int main() { |
yusuke_robocup | 0:30c83ede1f0b | 57 | device.baud(9600); |
yusuke_robocup | 0:30c83ede1f0b | 58 | device.attach(&dev_rx); |
yusuke_robocup | 0:30c83ede1f0b | 59 | |
yusuke_robocup | 0:30c83ede1f0b | 60 | for(;;){ |
yusuke_robocup | 0:30c83ede1f0b | 61 | //pc.printf("%d\n",data[1]*-1); |
yusuke_robocup | 0:30c83ede1f0b | 62 | //pc.printf("%d\n",data[2]); |
yusuke_robocup | 0:30c83ede1f0b | 63 | //pc.printf("%d\n",data[4]); |
yusuke_robocup | 0:30c83ede1f0b | 64 | } |
yusuke_robocup | 0:30c83ede1f0b | 65 | } |