2017年度の製作を開始します。

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Branch:
Thread-gyogetsuMPU
Revision:
39:7623678de4e2
Parent:
38:32f483b0a77f
Child:
40:f15c11485e95
--- a/main.cpp	Thu Mar 09 13:36:24 2017 +0000
+++ b/main.cpp	Sun Mar 12 02:20:38 2017 +0000
@@ -5,6 +5,7 @@
 #include "MPU6050.h"
 #include "BufferedSoftSerial.h"
 #include "Cadence.h"
+#include "SDFileSystem.h"
 
 #define SOUDA_DATAS_NUM 24 //(yokutan 7 + input 5)*2
 #define WRITE_DATAS_NUM 20
@@ -30,6 +31,9 @@
 }
 //-------------------------------------------------------
 
+SDFileSystem sd(p5, p6, p7, p8, "sd");
+FILE* fp;
+
 RawSerial pc(USBTX,USBRX);
 RawSerial android(p9,p10);
 BufferedSoftSerial soudaSerial(p17,p18);
@@ -77,6 +81,8 @@
 void MpuInit();
 void mpuProcessing(void const *arg);
 void DataReceiveFromSouda(void const *arg);
+void SdInit();
+void SDprintf();
 void WriteDatas();
 float calcAttackAngle();
 float calcKXdeg(float x);
@@ -124,6 +130,7 @@
     twe.baud(19200);//BufferedSoftSerialでは19200が上限。twelite側でもBPS無効化が必要
     //writeTimer.start();
     FusokukeiInit();
+    SdInit();
 //    MpuInit(); 
     //writeDatasTicker.attach(&WriteDatas,1);
 //    cadenceUpdateTicker.attach(&updateCadence, 1);
@@ -223,6 +230,30 @@
 //    }//while(1)
 }
 
+void SdInit(){
+    mkdir("/sd/mydir", 0777);
+    fp = fopen("/sd/mydir/sdtest2.csv", "w");
+    if(fp == NULL) {
+        error("Could not open file for write\n");
+    }
+    fprintf(fp, "Hello fun SD Card World!\n\r");
+    fclose(fp);
+}
+
+void SDprintf(){
+    fp = fopen("/sd/mydir/sdtest.csv", "a");
+    if(fp == NULL) {
+        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++){
+            fprintf(fp,"%f,", writeDatas[i][j]);
+        }
+    }
+    fprintf(fp,"\n\r");
+    fclose(fp);
+}
+
 void WriteDatas(){
     int i;
     for(i = 0; i < SOUDA_DATAS_NUM; i++){
@@ -242,12 +273,12 @@
 //    }
 //    pc.printf("\n\r");
 //    twe.printf("\n\r");
-//    if(write_datas_index == SD_WRITE_NUM-1){
-//        write_datas_index=0;
-//    }
-//    else{
-//        write_datas_index++;
-//    } 
+    if(write_datas_index == SD_WRITE_NUM-1){
+        write_datas_index=0;
+    }
+    else{
+        write_datas_index++;
+    } 
     for(int i = 0; i < SOUDA_DATAS_NUM; i++){
         pc.printf("%i   ",soudaDatas[i]);
         twe.printf("%i,",soudaDatas[i]);
@@ -269,7 +300,7 @@
 //        android.printf("%f,%f,\r\n",airSpeed,sonarDist); 
         android.printf("%f,%f,test\n\r",roll,airSpeed);
     }
-    //SDprintf();
+    SDprintf();
 }
 
 void WriteDatasF(){