2/13 操舵翼端CAN

Dependencies:   ADXL345_I2C Control_Yokutan_CANver1 mbed

Fork of Control_Yokutan_CAN_ver1 by albatross

Revision:
3:4417217b4f66
Parent:
2:7fcb4f970a02
Child:
4:7459a428e16e
Child:
5:a839ccbf7f9a
Child:
9:450cafd95ac3
diff -r 7fcb4f970a02 -r 4417217b4f66 main.cpp
--- a/main.cpp	Tue Feb 16 09:49:50 2016 +0000
+++ b/main.cpp	Wed Feb 17 01:56:21 2016 +0000
@@ -4,7 +4,7 @@
 #include "INA226.hpp"
 #define TO_SEND_DATAS_NUM 5
 #define INIT_SERVO_PERIOD_MS 20
-#define WAIT_LOOP_TIME 1
+#define WAIT_LOOP_TIME 0.2
 #define CONTROL_VALUES_NUM 2
 #define TO_SEND_CAN_ID 100
 
@@ -14,8 +14,8 @@
 ADXL345_I2C accelerometer(p9, p10);
 I2C ina226_i2c(p28,p27);
 INA226 VCmonitor(ina226_i2c);
-PwmOut servo1(p21);
-PwmOut servo2(p22);
+PwmOut servo1(p22);
+PwmOut servo2(p23);
 DigitalOut led1(LED1);
 AnalogIn a(p20);
 AnalogIn b(p19);
@@ -63,7 +63,7 @@
 }
 
 void init(){
-    pc.printf("Receiver\n\r");
+   // pc.printf("Receiver\n\r");
     SERVO_FLAG = servoInit();
     ADXL_FLAG = adxlInit();
     INA_FLAG = inaInit();
@@ -79,7 +79,9 @@
     }
     for(int i = 0; i < 3; i++){
         toSendDatas[i] = acc[i];
+        //pc.printf("%d\t",acc[i]);
     }
+    //pc.printf("\n");
     toSendDatas[3] = (char)(V/100);
     toSendDatas[4] = (char)(C/0100);
 }
@@ -87,11 +89,9 @@
 void receiveDatas(){
     if(can.read(recmsg)){
         for(int i = 0; i < CONTROL_VALUES_NUM; i++){
-            //controlValues[i] = recmsg.data[i];
-            controlValues[i] = 1 - controlValues[i];
-            //pc.printf("%d:%d    ",i,recmsg.data[i]);
+            controlValues[i] = recmsg.data[i];
+         //   pc.printf("%d:%d    ",i,recmsg.data[i]);
         }
-        pc.printf("\n\r");
         led1 = !led1;
     }
 }
@@ -100,49 +100,52 @@
     //for(int i = 0; i < TO_SEND_DATAS_NUM; i++){
     //    pc.printf("%i:",toSendDatas[3]);
 //        pc.printf("%i:",toSendDatas[4]);
-//        pc.printf("%f:",V);
-//        pc.printf("%f:",C);
+       pc.printf("%f:",V);
+    pc.printf("%f:",C);
 //    //}
-    for(int i = 0; i <CONTROL_VALUES_NUM; i++){
-        pc.printf("%d:%d, ",i,controlValues[i]);
-    }
-    pc.printf("%d",INA_FLAG);
-    pc.printf("\n\r");
+    //for(int i = 0; i <CONTROL_VALUES_NUM; i++){
+//      //  pc.printf("%d, ",controlValues[i]);
+//        
+//    }
+    //pc.printf("\n\r");
+//    pc.printf("%f",a.read());
+    //pc.printf("\n\r");
 }
 
 void sendDatas(){
-    if(can.write(CANMessage(TO_SEND_CAN_ID, toSendDatas, TO_SEND_DATAS_NUM)))
-        pc.printf("resend suc\n\r");   
+   if(can.write(CANMessage(TO_SEND_CAN_ID, toSendDatas, TO_SEND_DATAS_NUM))){
+    //
+      //  pc.printf("resend suc\n\r");   
 }
-
+}
 double calcPulse(int deg){
     return (0.00093+(deg/180.0)*(0.00235-0.00077));
 }
 
 void WriteServo(){
-    //if(controlValues[0] == 1){
-//        servo1.pulsewidth(calcPulse(90));
-//    } 
-//    else{
-//        servo1.pulsewidth(calcPulse(45));
-//    }
-//    if(controlValues[1] == 1){
-//        servo1.pulsewidth(calcPulse(90));
-//    } 
-//    else{
-//        servo1.pulsewidth(calcPulse(45));
-//    }
-    servo1.pulsewidth(calcPulse(a.read()*170));
-    servo2.pulsewidth(calcPulse(b.read()*170));
-    pc.printf("%f", a.read());
+    if(controlValues[0] == (char)1){
+        servo1.pulsewidth(calcPulse(90));
+    } 
+    else{
+        servo1.pulsewidth(calcPulse(45));
+    }
+    if(controlValues[1] == (char)1){
+        servo2.pulsewidth(calcPulse(90));
+    } 
+    else{
+        servo2.pulsewidth(calcPulse(45));
+    }
+    //servo1.pulsewidth(calcPulse(a.read()*170));
+//    servo2.pulsewidth(calcPulse(b.read()*170));
+    //pc.printf("%f", a.read());
 }
 
 int main(){
     init();
     while(1){
         receiveDatas();
-        updateDatas();
         WriteServo();
+           updateDatas();
         toString();
         sendDatas();
         wait(WAIT_LOOP_TIME);