201708能代のメインマイコンの保存データ送信用プログラム
Dependencies: MPU6050 mbed MS5607
Diff: main.cpp
- Revision:
- 2:1dbaef45ae46
- Parent:
- 0:bdbd3d6fc5d5
- Child:
- 3:660279be8484
diff -r e4d7342be507 -r 1dbaef45ae46 main.cpp --- a/main.cpp Tue May 16 05:18:55 2017 +0000 +++ b/main.cpp Tue Jul 18 14:22:08 2017 +0000 @@ -1,19 +1,50 @@ #include "mbed.h" +#include "string.h" #include "SDFileSystem.h" - -SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board - + +#define BUFFNUM 50 +#define CHARNUM 16 + +SDFileSystem sd(dp2, dp1, dp6, dp14, "sd"); +Serial mainCP(dp16, dp15); + +bool row = false; +int8_t col=0, cnt=0; +char data[2][BUFFNUM][CHARNUM] = {}; +FILE *fp; + +void _log(); + int main() { - printf("Hello World!\n"); - - mkdir("/sd/mydir", 0777); - - FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); - if(fp == NULL) { - error("Could not open file for write\n"); + printf("Hello World!\r\n"); + mkdir("/sd/mydir", 0777); + fp = fopen("/sd/mydir/log.txt", "w"); + if(fp == NULL) error("Could not open file for write\r\n"); + fprintf(fp, "Hello fun SD Card World!\n"); + fclose(fp); + mainCP.attach(&_log, Serial::RxIrq); + while(1); +} + +void _log(){//受信割り込み用.\n区切りで保存する. + data[row][col][cnt] = mainCP.getc(); + cnt++; + if(data[row][col][cnt]=='\n'){ + col++; + cnt = 0; + }else if(cnt==CHARNUM){ + memset(&data[row][col][0],'\0',CHARNUM); + cnt = 0; + } + + if(col==BUFFNUM){ + col = 0; + row = !row; + fp = fopen("/sd/mydir/log.txt", "a"); + for (int i = 0; i < BUFFNUM; i++){ + fprintf(fp,&data[!row][i][0]); } - fprintf(fp, "Hello fun SD Card World!"); - fclose(fp); - - printf("Goodbye World!\n"); -} + fclose(fp); + memset(&data[row][0][0],'\0',BUFFNUM*CHARNUM); + } +} \ No newline at end of file