2018年度計器mbed用プログラム
Dependencies: BufferedSoftSerial2 INA226_ver1 mbed-rtos mbed SDFileSystem-RTOS
Fork of keiki2017 by
Revision 70:763d62c486ca, committed 2017-06-16
- Comitter:
- YusukeWakuta
- Date:
- Fri Jun 16 07:34:32 2017 +0000
- Branch:
- SDandCadenceThread
- Parent:
- 69:1f892421d694
- Child:
- 71:c06da87572f1
- Commit message:
- ????????????????
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Jun 16 02:04:45 2017 +0000 +++ b/main.cpp Fri Jun 16 07:34:32 2017 +0000 @@ -55,8 +55,6 @@ //Timer sonarTimer; AnalogIn sonarPin(p15); -//InterruputIn sonarPin(p15); -//double sonarDistTime double sonarDist; float sonarV; @@ -160,25 +158,31 @@ //ケイデンスの値を取得します。 // source: 定格12V電源の電圧値[mV], input: センサ値[mV] -void updateCadence(double source, double input,double input2,bool isFFlag) +void updateCadence(double source, double input,double input2) { + + static bool isFFlag = true; if(isFFlag) { lastCadenceInput = isOh182eOverThreshold(source,input); lastCadenceInput2 = isOh182eOverThreshold(source,input2); cadenceTimer.start(); + isFFlag = false; return; } - if((isOh182eOverThreshold(source,input) ^ lastCadenceInput) ||(isOh182eOverThreshold(source,input2) ^ lastCadenceInput2)) { + if((isOh182eOverThreshold(source,input) != lastCadenceInput) ||(isOh182eOverThreshold(source,input2) != lastCadenceInput2)) { if(cadenceCounter < 3) { cadenceCounter++; + led3 = !led3; + lastCadenceInput = isOh182eOverThreshold(source,input); + lastCadenceInput2 = isOh182eOverThreshold(source,input2); return; } cadenceResult =60.0/ (cadenceTimer.read_us() / 1000000.0); //クランク一回転にかかる時間を取得 cadenceTimer.reset(); cadenceCounter = 0; } - lastCadenceInput = isOh182eOverThreshold(source,input); - lastCadenceInput2 = isOh182eOverThreshold(source,input2); + lastCadenceInput = isOh182eOverThreshold(source,input); + lastCadenceInput2 = isOh182eOverThreshold(source,input2); } void init() @@ -316,28 +320,26 @@ void SDprintf(const void* arg) { - SdInit(); - bool isFirstCadenceFlag = true; + // SdInit(); while(1) { - led3 = !led3; - updateCadence(V,mgPin.read() * 3.3,mgPin2.read() * 3.3,isFirstCadenceFlag); - printf("mgPin V:%f\n",mgPin.read()*3.3); - isFirstCadenceFlag = false; - if(write_datas_index == SD_WRITE_NUM-1) { - 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"); - fclose(fp); - - write_datas_index=0; - } + updateCadence(V,mgPin.read() * 3300.0,mgPin2.read() * 3300.0); + // pc.printf("V:%5.5f mgPin:%5.5f mgPin2:%5.5f",V,mgPin.read() * 3300.0,mgPin2.read() * 3300.0); + // if(write_datas_index == SD_WRITE_NUM-1) { +// 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"); +// } +// +// fclose(fp); +// +// write_datas_index=0; +// } Thread::wait(100); } } @@ -383,7 +385,7 @@ } twe.printf("%s",sbuf); twe.printf("inp,%d,%i,%d,%i\n",soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1]); - + /* 送信文字列 0-13翼端データ @@ -401,10 +403,12 @@ // pc.printf("%d,%i,%d,%i,",soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1]); // pc.printf("%f,%f,%f\n\r",pitch,roll,yaw); // printf("mgPin V:%f\n\r",mgPin.read()*3.3); - pc.printf("%d,%i,%d,%i\n%f,%f,%f\n%f,%f,%f\n\r", - soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1], - pitch,roll,yaw, - airSpeed,sonarDist,cadenceResult); + // pc.printf("%d,%i,%d,%i\n%f,%f,%f\n%f,%f,%f\n\r", +// soudaDatas[YOKUTAN_DATAS_NUM],soudaDatas[sizeof(int) + YOKUTAN_DATAS_NUM + 2],(int)soudaDatas[SOUDA_DATAS_NUM - sizeof(int) - 3],soudaDatas[SOUDA_DATAS_NUM-1], +// pitch,roll,yaw, +// airSpeed,sonarDist,cadenceResult); + pc.printf("cadence:%5.5f\n\r",cadenceResult); + // for(int i = 0; i < strlen(cadence_twe.myBuff); i++){ // ////pc.printf("%c",*(cadence_twe.myBuff+i)); // } @@ -413,7 +417,7 @@ // android.printf("%f,%f,%f,",pitch,roll,yaw); // android.printf("%f,%f,\r\n",airSpeed,sonarDist); android.printf("%4.2f,%4.2f,%4.2f,\n,",roll,airSpeed,cadenceResult);//cadence_twe.cadence); -// led2 = !led2; +// led2 = !led2; } // SDprintf(); } @@ -450,10 +454,13 @@ init(); int VCcounter = 0; while(1) { - if(VCcounter%20 == 0 && VCmonitor.getVoltage(&V) == 0) { - pc.printf("e:%f\n",V); - }VCcounter++; - + if(VCcounter%20 == 0 ) { + if( VCmonitor.getVoltage(&V) == 0) { + pc.printf("e:%f\n",V); + } + } + VCcounter++; + // updateCadence(V,mgPin.read() * 3.3,mgPin2.read() * 3.3,isFirstCadenceFlag); //pc.printf("test\n\r"); // mpuProcessing();