go

Dependencies:   mbed

Committer:
yusuke_robocup
Date:
Thu Mar 28 07:43:56 2013 +0000
Revision:
0:30c83ede1f0b
usart

Who changed what in which revision?

UserRevisionLine numberNew 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 }