2/13 操舵翼端CAN

Dependencies:   ADXL345_I2C Control_Yokutan_CANver1 mbed

Fork of Control_Yokutan_CAN_ver1 by albatross

Revision:
5:a839ccbf7f9a
Parent:
3:4417217b4f66
diff -r 4417217b4f66 -r a839ccbf7f9a main.cpp
--- a/main.cpp	Wed Feb 17 01:56:21 2016 +0000
+++ b/main.cpp	Wed Feb 17 02:43:40 2016 +0000
@@ -1,153 +1,47 @@
 //翼端can program
 #include "mbed.h"
-#include "ADXL345_I2C.h"
-#include "INA226.hpp"
-#define TO_SEND_DATAS_NUM 5
 #define INIT_SERVO_PERIOD_MS 20
 #define WAIT_LOOP_TIME 0.2
-#define CONTROL_VALUES_NUM 2
-#define TO_SEND_CAN_ID 100
 
-CAN can(p30,p29);
-CANMessage recmsg;
 Serial pc(USBTX,USBRX);
-ADXL345_I2C accelerometer(p9, p10);
-I2C ina226_i2c(p28,p27);
-INA226 VCmonitor(ina226_i2c);
 PwmOut servo1(p22);
-PwmOut servo2(p23);
+PwmOut servo2(p23);// eruron
 DigitalOut led1(LED1);
 AnalogIn a(p20);
 AnalogIn b(p19);
 
-char toSendDatas[TO_SEND_DATAS_NUM];
-char controlValues[CONTROL_VALUES_NUM];//0:eruruon,1:drug
+int neutral_a = 0;
+int neutral_b = 0;
 
-int counter = 0;
-int eruron_deg = 0;
-int drug_deg = 0;
-unsigned short ina_val;
-double V,C;
-bool SERVO_FLAG;
-bool ADXL_FLAG;
-bool INA_FLAG;
-
-int acc[3] = {0,0,0};
-
-bool servoInit(){
+bool servoInit()
+{
     servo1.period_ms(INIT_SERVO_PERIOD_MS);
     servo2.period_ms(INIT_SERVO_PERIOD_MS);
     return true;
 }
 
-bool adxlInit(){
-    accelerometer.setPowerControl(0x00);
-    accelerometer.setDataFormatControl(0x0B);
-    accelerometer.setDataRate(ADXL345_3200HZ);
-    accelerometer.setPowerControl(0x08);
-    return true;
-}
 
-bool inaInit(){
-    if(!VCmonitor.isExist()){
-        pc.printf("VCmonitor NOT FOUND\n");
-        return false;
-    }
-    ina_val = 0;
-    if(VCmonitor.rawRead(0x00,&ina_val) != 0){
-        pc.printf("VCmonitor READ ERROR\n");
-        return false;
-    }
-    VCmonitor.setCurrentCalibration();
-    return true;
-}
-
-void init(){
-   // pc.printf("Receiver\n\r");
-    SERVO_FLAG = servoInit();
-    ADXL_FLAG = adxlInit();
-    INA_FLAG = inaInit();
-}
-
-void updateDatas(){
-    if(ADXL_FLAG){
-        accelerometer.getOutput(acc);
-    }
-    if(INA_FLAG){
-        int tmp = VCmonitor.getVoltage(&V);
-        tmp = VCmonitor.getCurrent(&C);
-    }
-    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);
-}
-
-void receiveDatas(){
-    if(can.read(recmsg)){
-        for(int i = 0; i < CONTROL_VALUES_NUM; i++){
-            controlValues[i] = recmsg.data[i];
-         //   pc.printf("%d:%d    ",i,recmsg.data[i]);
-        }
-        led1 = !led1;
-    }
-}
-
-void toString(){
-    //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);
-//    //}
-    //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");   
-}
-}
-double calcPulse(int deg){
+double calcPulse(int deg)
+{
     return (0.00093+(deg/180.0)*(0.00235-0.00077));
 }
 
-void WriteServo(){
-    if(controlValues[0] == (char)1){
-        servo1.pulsewidth(calcPulse(90));
-    } 
-    else{
-        servo1.pulsewidth(calcPulse(45));
+void WriteServo(int a,int b)
+{
+    servoInit();
+        servo1.pulsewidth(calcPulse(a * 90));
+        servo2.pulsewidth(calcPulse(b * 90));
     }
-    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();
-        WriteServo();
-           updateDatas();
-        toString();
-        sendDatas();
+int main()
+{
+    while(1) {
+        WriteServo(a,b);
         wait(WAIT_LOOP_TIME);
     }
 }
\ No newline at end of file