2018年度計器mbed用プログラム
Dependencies: BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS
Fork of keiki2017 by
Diff: main.cpp
- Branch:
- Thread-gyogetsuMPU
- Revision:
- 41:1bd730c4840d
- Parent:
- 40:f15c11485e95
- Child:
- 42:73c3862e4c12
diff -r f15c11485e95 -r 1bd730c4840d main.cpp --- a/main.cpp Sun Mar 12 10:56:54 2017 +0000 +++ b/main.cpp Sat Mar 18 03:13:36 2017 +0000 @@ -1,11 +1,11 @@ //計器プログラム #include "mbed.h" #include "rtos.h" +#include "Cadence.h" #include "Fusokukei.h" #include "MPU6050.h" #include "BufferedSoftSerial.h" -#include "Cadence.h" -#include "SDFileSystem.h" +//#include "SDFileSystem.h" #define SOUDA_DATAS_NUM 24 //(yokutan 7 + input 5)*2 #define WRITE_DATAS_NUM 30 // souda_datas_num + 6( rpy, airspeed, height, cadence) @@ -31,15 +31,15 @@ } //------------------------------------------------------- -SDFileSystem sd(p5, p6, p7, p8, "sd"); -FILE* fp; +//SDFileSystem sd(p5, p6, p7, p8, "sd"); +//FILE* fp; RawSerial pc(USBTX,USBRX); RawSerial android(p9,p10); BufferedSoftSerial soudaSerial(p17,p18); BufferedSoftSerial twe(p11,p12); Cadence cadence_twe(p13,p14); -//Ticker cadenceUpdateTicker; +Ticker cadenceUpdateTicker; //Ticker writeDatasTicker; //Timer writeTimer; @@ -75,14 +75,14 @@ void call_calcAirSpeed(); void sonarInterruptStart(); void sonarInterruptStop(); -void updateCadence(void const *arg); +void updateCadence(/*void const *arg*/); void init(); void FusokukeiInit(); void MpuInit(); void mpuProcessing(void const *arg); void DataReceiveFromSouda(void const *arg); void SdInit(); -void SDprintf(); +//void SDprintf(); void WriteDatas(); float calcAttackAngle(); float calcKXdeg(float x); @@ -130,10 +130,10 @@ twe.baud(19200);//BufferedSoftSerialでは19200が上限。twelite側でもBPS無効化が必要 //writeTimer.start(); FusokukeiInit(); - SdInit(); +// SdInit(); // MpuInit(); //writeDatasTicker.attach(&WriteDatas,1); -// cadenceUpdateTicker.attach(&updateCadence, 1); + cadenceUpdateTicker.attach(&updateCadence, 1); //-----for InterruptMode of sonar---------------------------- // sonarPin.rise(&sonarInterruptStart); @@ -229,30 +229,30 @@ }//if // }//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/data.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 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/data.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; @@ -274,7 +274,7 @@ // pc.printf("\n\r"); // twe.printf("\n\r"); if(write_datas_index == SD_WRITE_NUM-1){ - SDprintf(); +// SDprintf(); write_datas_index=0; } else{ @@ -287,12 +287,13 @@ } //pc.printf("\n\r"); twe.printf("%f,%f,%f,",pitch,roll,yaw); - twe.printf("%f,%f,%f\r\n",airSpeed,sonarDist,cadence_twe.cadence); + twe.printf("%f,%f,%f\r\n",airSpeed,sonarDist,cadence_twe.cadence); pc.printf("%f,%f,%f\n\r",pitch,roll,yaw); - //pc.printf("%f,%f,%f\n\r",calcKXdeg(kx_X.read()),calcKXdeg(KX_Y),calcKXdeg(KX_Z)); - pc.printf("%f,%f,%s\n\r",airSpeed,sonarDist,cadence_twe.myBuff); - pc.printf(cadence_twe.strData.c_str()); - pc.putc(cadence_twe.strV[0]); + //pc.printf("%f,%f,%f\n\r",calcKXdeg(kx_X.read()),calcKXdeg(KX_Y),calcKXdeg(KX_Z)); + pc.printf("%f,%f\n\r",airSpeed,sonarDist); + for(int i = 0; i < cadence_twe.strData.length(); i++){ + pc.printf("%c",*(cadence_twe.strData.c_str()+i)); + } if(android.writeable()){ // for(int i = 0; i<SOUDA_DATAS_NUM; i++){ // android.printf("%i,",soudaDatas[i]);