2018年度計器mbed用プログラム

Dependencies:   BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS

Fork of keiki2017 by albatross

Branch:
SDandCadenceThread
Revision:
69:1f892421d694
Parent:
65:075118165355
Child:
70:763d62c486ca
--- a/main.cpp	Thu Jun 15 05:01:39 2017 +0000
+++ b/main.cpp	Fri Jun 16 02:04:45 2017 +0000
@@ -107,7 +107,7 @@
 void air_countUp()
 {
     air_kaitensu++;
-    led3 = !led3;
+//    led3 = !led3;
 }
 
 void call_calcAirSpeed()
@@ -169,7 +169,7 @@
         return;
     }
     if((isOh182eOverThreshold(source,input) ^ lastCadenceInput) ||(isOh182eOverThreshold(source,input2) ^ lastCadenceInput2)) {
-        if(cadenceCounter < 4) {
+        if(cadenceCounter < 3) {
             cadenceCounter++;
             return;
         }
@@ -177,6 +177,8 @@
         cadenceTimer.reset();
         cadenceCounter = 0;
     }
+        lastCadenceInput =  isOh182eOverThreshold(source,input);
+        lastCadenceInput2 =  isOh182eOverThreshold(source,input2);
 }
 
 void init()
@@ -305,7 +307,8 @@
     mkdir("/sd/mydir", 0777);
     fp = fopen("/sd/mydir/sdtest2.csv", "w");
     if(fp == NULL) {
-        error("Could not open file for write\n");
+        printf("Could not open file for write\n");
+        return;
     }
     fprintf(fp, "Hello fun SD Card World!\n\r%f",0.1f);
     fclose(fp);
@@ -314,11 +317,16 @@
 void SDprintf(const void* arg)
 {
     SdInit();
+    bool isFirstCadenceFlag = true;
     while(1) {
+        led3 = !led3;
+        updateCadence(V,mgPin.read() * 3.3,mgPin2.read() * 3.3,isFirstCadenceFlag);
+        printf("mgPin V:%f\n",mgPin.read()*3.3);
+        isFirstCadenceFlag = false;
         if(write_datas_index == SD_WRITE_NUM-1) {
             fp = fopen("/sd/mydir/data.csv", "a");
             if(fp == NULL) {
-                printf("Could not open file for write\n");
+                error("Could not open file for write!!\n");
             }
             for(int i = 0; i < SD_WRITE_NUM; i++) {
                 for(int j = 0; j < WRITE_DATAS_NUM; j++) {
@@ -330,7 +338,7 @@
 
             write_datas_index=0;
         }
-        Thread::wait(1);
+        Thread::wait(100);
     }
 }
 
@@ -393,7 +401,10 @@
 //    pc.printf("%d,%i,%d,%i,",soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1]);
 //    pc.printf("%f,%f,%f\n\r",pitch,roll,yaw);
 //    printf("mgPin V:%f\n\r",mgPin.read()*3.3);
-    pc.printf("mgPin V:%f\n%d,%i,%d,%i\n%f,%f,%f\n%f,%f,%f\n\r",mgPin.read()*3.3,soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1],pitch,roll,yaw,airSpeed,sonarDist,cadenceResult);
+    pc.printf("%d,%i,%d,%i\n%f,%f,%f\n%f,%f,%f\n\r",
+        soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1],
+        pitch,roll,yaw,
+        airSpeed,sonarDist,cadenceResult);
 //    for(int i = 0; i < strlen(cadence_twe.myBuff); i++){
 //        ////pc.printf("%c",*(cadence_twe.myBuff+i));
 //    }
@@ -435,19 +446,19 @@
 {
     Thread mpu_thread(&mpuProcessing);
     Thread SD_thread(&SDprintf);
-    bool isFirstCadenceFlag = true;
 //    Thread soudaSerial_thread(&DataReceiveFromSouda);
     init();
-
+    int VCcounter = 0;
     while(1) {
-        if(VCmonitor.getVoltage(&V) == 0) {
-            printf("e:%f\n",V);
-        }
-        updateCadence(V,mgPin.read() * 3.3,mgPin2.read() * 3.3,isFirstCadenceFlag);
-        isFirstCadenceFlag = false;
+        if(VCcounter%20 == 0 && VCmonitor.getVoltage(&V) == 0) {
+            pc.printf("e:%f\n",V);
+        }VCcounter++;
+        
+//        updateCadence(V,mgPin.read() * 3.3,mgPin2.read() * 3.3,isFirstCadenceFlag);
         //pc.printf("test\n\r");
 //        mpuProcessing();
         sonarCalc();
+        Thread::wait(30);
         RollAlarm();
         DataReceiveFromSouda();
         WriteDatas();