2018年度計器mbed用プログラム
Dependencies: BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS
Fork of keiki2017 by
Diff: main.cpp
- Branch:
- Thread????
- Revision:
- 23:e59afb2044df
- Parent:
- 22:5cbebf097600
- Child:
- 26:50272431cd1e
--- a/main.cpp Sat Jan 07 00:00:11 2017 +0000 +++ b/main.cpp Sat Jan 07 02:03:08 2017 +0000 @@ -48,6 +48,7 @@ DigitalOut RollAlarmL(p19); DigitalOut led(LED1); DigitalOut led2(LED2); +DigitalOut led4(LED4); SDFileSystem sd(p5, p6, p7, p8, "sd"); FILE* fp; @@ -92,7 +93,7 @@ geikakuServo.period_ms(INIT_SERVO_PERIOD_MS); FusokukeiInit(); mpu6050.MPUInit(t); - SdInit(); +// SdInit();//thread 内で } void FusokukeiInit(){ @@ -112,7 +113,7 @@ } fprintf(fp, "Hello fun SD Card World!\n\r"); fclose(fp); - Thread sd_thread(&SDprintf); +// Thread sd_thread(&SDprintf); } void DataReceiveFromSouda(){ @@ -126,22 +127,24 @@ } void SDprintf(void const *argument){ + SdInit(); while(1){ - if(write_datas_index == SD_WRITE_NUM-1){ - fp = fopen("/sd/mydir/sdtest.csv", "a"); - if(fp == NULL) { - error("Could not open file for write\n"); + if(write_datas_index == SD_WRITE_NUM-1){ + led4 = !led4; + 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); + write_datas_index=0; } - 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); - write_datas_index=0; - } - Thread::wait(1); + Thread::wait(10); } } @@ -166,11 +169,7 @@ // } // pc.printf("\n\r"); // twe.printf("\n\r"); - if(write_datas_index == SD_WRITE_NUM-1){ -// SDprintf(); - write_datas_index=0; - } - else{ + if(write_datas_index < SD_WRITE_NUM-1){ write_datas_index++; } for(int i = 0; i < SOUDA_DATAS_NUM; i++){ @@ -191,6 +190,7 @@ //pc.printf("%f,%f,%f\n\r",calcKXdeg(kx_X.read()),calcKXdeg(KX_Y),calcKXdeg(KX_Z)); pc.printf("%f\n\r",airSpeed); //SDprintf(); + pc.printf("%d\n\r",write_datas_index); } void WriteDatasF(){ @@ -231,6 +231,7 @@ } int main(){ + Thread sd_thread(&SDprintf);//必ずmain内で init(); while(1){ pc.printf("test\n\r");