2018年度計器mbed用プログラム
Dependencies: BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS
Fork of keiki2017 by
Diff: main.cpp
- 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(){