TP完成形。2017/9/8作動確認。
Dependencies: SDFileSystem mbed
Revision 0:aca3a53a33bd, committed 2017-09-08
- Comitter:
- Joeatsumi
- Date:
- Fri Sep 08 09:09:50 2017 +0000
- Commit message:
- TP????2017/9/8
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDFileSystem.lib Fri Sep 08 09:09:50 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/SDFileSystem/#8db0d3b02cec
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri Sep 08 09:09:50 2017 +0000
@@ -0,0 +1,110 @@
+#include "mbed.h"
+#include "SDFileSystem.h"
+
+//Serial pc(USBTX, USBRX);
+Serial pc(dp16,dp15);
+Ticker timer;
+Timer time2 ;
+
+DigitalIn sw(dp17);
+
+int i;//ドリフトを抑えるループの中で使う。
+
+unsigned long beforeTime = 0;
+unsigned long elapsedTime = 0;
+unsigned long nowTime = 0;
+int flagHi = 0 ;
+int rpm = 0 ;
+double t;
+
+
+//SDFileSystem sd(p5,p6,p7,p8,"sd");//lpc1768用
+SDFileSystem sd(dp2,dp1,dp6,dp13,"sd");//lpc1114fn28用
+
+AnalogIn vin (dp9);
+AnalogIn hole(dp10);
+
+float v;
+float vin_center=0;
+
+FILE* fp;
+
+void SD()
+{
+
+ fprintf(fp,"%f,%d,%.3f,%.3f\n",t,rpm,v,vin_center);
+ t += 0.01;
+}
+
+int main() {
+
+ //==========初期電圧のドリフトを押さえる=========//
+ for(i=0;i<10;i++){
+ vin_center= vin_center + vin.read()*3.3;
+ wait(0.01);
+ }
+
+ vin_center=vin_center/10.0;
+ //==========================================//
+
+
+ pc.printf("Start!\n");
+ // printf("Start!\n");
+
+ time2.start();
+
+
+ fp = fopen("/sd/power_meter_data.csv", "w");
+ if(fp == NULL) {
+ error("Could not open file for write\n");
+ }
+
+ pc.printf("Start writing!\n");
+
+
+ // printf("Start writing!\n");
+
+ // void SD_p();
+
+ fclose(fp);
+ fp = fopen("/sd/power_meter_data.csv", "w");
+// fprintf(fp,"power_meter_data\n");
+ fprintf(fp,"t,rpm,v,vin_center\n");
+
+ timer.attach(&SD, 0.01);
+ while(1){
+
+ v=vin.read()*3.3;
+
+ //回転数計算
+
+ nowTime = time2.read_ms();
+
+ if(hole >= 0.5 && flagHi == 0){//パルスHi
+ pc.printf("%d\r\n",rpm);
+ elapsedTime = nowTime - beforeTime;//前回パルスアップからの経過時間
+ rpm = 60000 / elapsedTime ;
+ beforeTime = time2.read_ms();//今の時間を記録する
+ flagHi = 1;
+ }
+ if (hole <0.5 && flagHi == 1){//パルスLow
+ flagHi = 0;
+ }
+ if(nowTime - beforeTime>6000){
+ elapsedTime=0;
+ }//回転数end
+
+ if(sw==1)
+ {
+ timer.detach();
+ break;
+ }
+ }//while end
+
+ fclose(fp);
+ // printf("Finish!!\n");
+ //printf("Pased time %.2f\n",t);
+ pc.printf("Finish!!\n");
+ pc.printf("Pased time %.2f\n",t);
+
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Sep 08 09:09:50 2017 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/mbed_official/code/mbed/builds/e1686b8d5b90 \ No newline at end of file