中継機能つけた受け取りオムニ

Dependencies:   mbed MultiSerial

Revision:
0:fddd018033fb
Child:
1:5d4aec3f0651
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Aug 19 09:41:34 2014 +0000
@@ -0,0 +1,56 @@
+/*
+ * 4WD_OMNI_simple  by Tomoki Hokida
+ * Simple Type
+ *
+ * motor pins piar
+ * motor(p21,p22):motor(p23,p24)
+ * motor(p25,p26):motor(p27,p28)
+ * 通信中継用
+ * data 5~8 arm
+ * data 1~4:omni
+ * reset 0
+ */
+
+#include "mbed.h"
+#include <math.h>
+#include "RawSerial.h"
+
+DigitalOut check(LED1);
+BusOut motors(p21,p22,p23,p24,p25,p26,p27,p28);
+
+I2C armMbed(p9,p10);
+RawSerial xbee(p13,p14);
+
+//i2c init
+
+int addr = 0x01;
+char buff[1];
+
+uint8_t value=0;
+uint8_t omni_value=0;
+
+//armMbed.frequency(10000);
+
+void getData() //serial xbee to mbed
+{   
+    value = xbee.getc();
+    
+    buff[0]=value>>4;
+    omni_value=value<<4;                    
+    armMbed.write(addr,buff,1);
+}
+
+int main()
+{
+    xbee.attach(&getData, Serial::RxIrq);
+
+    for(;;){
+            if(omni_value==0x0) motors = 0;
+            if(omni_value&0x10) motors = 0x05; //p21,p23 
+            if(omni_value&0x20) motors = 0x0A; //p22,p24 
+            if(omni_value&0x40) motors = 0x50; //p25,p27        
+            if(omni_value&0x80) motors = 0xA0; //p26,p28
+            
+             check = !check;
+        }
+}
\ No newline at end of file