test

Dependencies:   SDFileSystem mbed

Committer:
Joeatsumi
Date:
Thu Aug 17 09:03:15 2017 +0000
Revision:
0:5d1752467f09
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Joeatsumi 0:5d1752467f09 1 //本番,TFで作動させたプログラム//
Joeatsumi 0:5d1752467f09 2 //製作者 S-240執行代__戸田純實_(あだ名Joe Backer)//
Joeatsumi 0:5d1752467f09 3
Joeatsumi 0:5d1752467f09 4 #include "mbed.h"
Joeatsumi 0:5d1752467f09 5 #include "SDFileSystem.h"
Joeatsumi 0:5d1752467f09 6 #define P_HI 1000
Joeatsumi 0:5d1752467f09 7 #define P_LO 120
Joeatsumi 0:5d1752467f09 8 AnalogIn analog9(dp9);
Joeatsumi 0:5d1752467f09 9 AnalogIn analog10(dp10);
Joeatsumi 0:5d1752467f09 10 DigitalOut myled1(LED1);
Joeatsumi 0:5d1752467f09 11 Timer Time ;
Joeatsumi 0:5d1752467f09 12 Ticker sd_write ;
Joeatsumi 0:5d1752467f09 13
Joeatsumi 0:5d1752467f09 14 int i;
Joeatsumi 0:5d1752467f09 15 unsigned long beforeTime = 0;
Joeatsumi 0:5d1752467f09 16 unsigned long elapsedTime = 0;
Joeatsumi 0:5d1752467f09 17 unsigned long nowTime = 0;
Joeatsumi 0:5d1752467f09 18 int flagHi = 0 ;
Joeatsumi 0:5d1752467f09 19 int rpm = 0 ;
Joeatsumi 0:5d1752467f09 20 double vin = 0 ;
Joeatsumi 0:5d1752467f09 21 double vin_center = 0 ;
Joeatsumi 0:5d1752467f09 22 double power =0; //
Joeatsumi 0:5d1752467f09 23 double t =0;
Joeatsumi 0:5d1752467f09 24 Serial pc(dp16,dp15);
Joeatsumi 0:5d1752467f09 25
Joeatsumi 0:5d1752467f09 26 void SD(){
Joeatsumi 0:5d1752467f09 27 __disable_irq();//この関数を最優先に割り込みする。
Joeatsumi 0:5d1752467f09 28 myled1 = 0 ;
Joeatsumi 0:5d1752467f09 29 SDFileSystem sd(dp2,dp1,dp6,dp13,"sd");
Joeatsumi 0:5d1752467f09 30 mkdir("/sd/mydir", 0777);
Joeatsumi 0:5d1752467f09 31 FILE *fp = fopen("/sd/mydir/power.csv", "a");
Joeatsumi 0:5d1752467f09 32 if(fp == NULL){
Joeatsumi 0:5d1752467f09 33 error("Could not open file for write\n");
Joeatsumi 0:5d1752467f09 34 myled1 = 0 ;
Joeatsumi 0:5d1752467f09 35 }
Joeatsumi 0:5d1752467f09 36 else{
Joeatsumi 0:5d1752467f09 37 myled1 = 1 ;
Joeatsumi 0:5d1752467f09 38 fprintf(fp,"%d,%d,%.2f,%.2f\r\n",nowTime,rpm,vin,vin_center);
Joeatsumi 0:5d1752467f09 39 }
Joeatsumi 0:5d1752467f09 40 fclose(fp);
Joeatsumi 0:5d1752467f09 41 free(fp);
Joeatsumi 0:5d1752467f09 42 __enable_irq();
Joeatsumi 0:5d1752467f09 43 }//割り込み終了
Joeatsumi 0:5d1752467f09 44
Joeatsumi 0:5d1752467f09 45 int main(){
Joeatsumi 0:5d1752467f09 46
Joeatsumi 0:5d1752467f09 47
Joeatsumi 0:5d1752467f09 48 //==========初期電圧のドリフトを押さえる=========//
Joeatsumi 0:5d1752467f09 49 for(i=0;i<10;i++){
Joeatsumi 0:5d1752467f09 50 vin_center= vin_center + analog9.read()*3.3;
Joeatsumi 0:5d1752467f09 51 wait(0.01);
Joeatsumi 0:5d1752467f09 52 }
Joeatsumi 0:5d1752467f09 53
Joeatsumi 0:5d1752467f09 54 vin_center=vin_center/10;
Joeatsumi 0:5d1752467f09 55 //==========================================//
Joeatsumi 0:5d1752467f09 56
Joeatsumi 0:5d1752467f09 57
Joeatsumi 0:5d1752467f09 58 Time.start();
Joeatsumi 0:5d1752467f09 59 sd_write.attach(&SD,1);//壱秒ごとにSDという関数を発動し、割り込みする。
Joeatsumi 0:5d1752467f09 60 while(1){
Joeatsumi 0:5d1752467f09 61
Joeatsumi 0:5d1752467f09 62
Joeatsumi 0:5d1752467f09 63 vin = analog9.read() * 3.3 ;
Joeatsumi 0:5d1752467f09 64
Joeatsumi 0:5d1752467f09 65
Joeatsumi 0:5d1752467f09 66 //回転数計算
Joeatsumi 0:5d1752467f09 67 // __disable_irq();
Joeatsumi 0:5d1752467f09 68 nowTime = Time.read_ms();
Joeatsumi 0:5d1752467f09 69
Joeatsumi 0:5d1752467f09 70 if(analog10 >= 0.5 && flagHi == 0){//パルスHi
Joeatsumi 0:5d1752467f09 71 pc.printf("%d\r\n",rpm);
Joeatsumi 0:5d1752467f09 72 elapsedTime = nowTime - beforeTime;//前回パルスアップからの経過時間
Joeatsumi 0:5d1752467f09 73 rpm = 60000 / elapsedTime ;
Joeatsumi 0:5d1752467f09 74 beforeTime = Time.read_ms();//今の時間を記録する
Joeatsumi 0:5d1752467f09 75 flagHi = 1;
Joeatsumi 0:5d1752467f09 76 }
Joeatsumi 0:5d1752467f09 77 if (analog10 <0.5 && flagHi == 1){//パルスLow
Joeatsumi 0:5d1752467f09 78 flagHi = 0;
Joeatsumi 0:5d1752467f09 79 }
Joeatsumi 0:5d1752467f09 80 if(nowTime - beforeTime>6000){
Joeatsumi 0:5d1752467f09 81 elapsedTime=0;
Joeatsumi 0:5d1752467f09 82 }
Joeatsumi 0:5d1752467f09 83 //__enable_irq();
Joeatsumi 0:5d1752467f09 84 wait(0.01);
Joeatsumi 0:5d1752467f09 85 }
Joeatsumi 0:5d1752467f09 86 }
Joeatsumi 0:5d1752467f09 87