201708能代のメインマイコンの保存データ送信用プログラム

Dependencies:   MPU6050 mbed MS5607

Committer:
mikawataru
Date:
Tue Jul 18 14:22:08 2017 +0000
Revision:
2:1dbaef45ae46
Parent:
0:bdbd3d6fc5d5
Child:
3:660279be8484
201708denso_sub1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:bdbd3d6fc5d5 1 #include "mbed.h"
mikawataru 2:1dbaef45ae46 2 #include "string.h"
mbed_official 0:bdbd3d6fc5d5 3 #include "SDFileSystem.h"
mikawataru 2:1dbaef45ae46 4
mikawataru 2:1dbaef45ae46 5 #define BUFFNUM 50
mikawataru 2:1dbaef45ae46 6 #define CHARNUM 16
mikawataru 2:1dbaef45ae46 7
mikawataru 2:1dbaef45ae46 8 SDFileSystem sd(dp2, dp1, dp6, dp14, "sd");
mikawataru 2:1dbaef45ae46 9 Serial mainCP(dp16, dp15);
mikawataru 2:1dbaef45ae46 10
mikawataru 2:1dbaef45ae46 11 bool row = false;
mikawataru 2:1dbaef45ae46 12 int8_t col=0, cnt=0;
mikawataru 2:1dbaef45ae46 13 char data[2][BUFFNUM][CHARNUM] = {};
mikawataru 2:1dbaef45ae46 14 FILE *fp;
mikawataru 2:1dbaef45ae46 15
mikawataru 2:1dbaef45ae46 16 void _log();
mikawataru 2:1dbaef45ae46 17
mbed_official 0:bdbd3d6fc5d5 18 int main() {
mikawataru 2:1dbaef45ae46 19 printf("Hello World!\r\n");
mikawataru 2:1dbaef45ae46 20 mkdir("/sd/mydir", 0777);
mikawataru 2:1dbaef45ae46 21 fp = fopen("/sd/mydir/log.txt", "w");
mikawataru 2:1dbaef45ae46 22 if(fp == NULL) error("Could not open file for write\r\n");
mikawataru 2:1dbaef45ae46 23 fprintf(fp, "Hello fun SD Card World!\n");
mikawataru 2:1dbaef45ae46 24 fclose(fp);
mikawataru 2:1dbaef45ae46 25 mainCP.attach(&_log, Serial::RxIrq);
mikawataru 2:1dbaef45ae46 26 while(1);
mikawataru 2:1dbaef45ae46 27 }
mikawataru 2:1dbaef45ae46 28
mikawataru 2:1dbaef45ae46 29 void _log(){//受信割り込み用.\n区切りで保存する.
mikawataru 2:1dbaef45ae46 30 data[row][col][cnt] = mainCP.getc();
mikawataru 2:1dbaef45ae46 31 cnt++;
mikawataru 2:1dbaef45ae46 32 if(data[row][col][cnt]=='\n'){
mikawataru 2:1dbaef45ae46 33 col++;
mikawataru 2:1dbaef45ae46 34 cnt = 0;
mikawataru 2:1dbaef45ae46 35 }else if(cnt==CHARNUM){
mikawataru 2:1dbaef45ae46 36 memset(&data[row][col][0],'\0',CHARNUM);
mikawataru 2:1dbaef45ae46 37 cnt = 0;
mikawataru 2:1dbaef45ae46 38 }
mikawataru 2:1dbaef45ae46 39
mikawataru 2:1dbaef45ae46 40 if(col==BUFFNUM){
mikawataru 2:1dbaef45ae46 41 col = 0;
mikawataru 2:1dbaef45ae46 42 row = !row;
mikawataru 2:1dbaef45ae46 43 fp = fopen("/sd/mydir/log.txt", "a");
mikawataru 2:1dbaef45ae46 44 for (int i = 0; i < BUFFNUM; i++){
mikawataru 2:1dbaef45ae46 45 fprintf(fp,&data[!row][i][0]);
mbed_official 0:bdbd3d6fc5d5 46 }
mikawataru 2:1dbaef45ae46 47 fclose(fp);
mikawataru 2:1dbaef45ae46 48 memset(&data[row][0][0],'\0',BUFFNUM*CHARNUM);
mikawataru 2:1dbaef45ae46 49 }
mikawataru 2:1dbaef45ae46 50 }