5/27 計器プログラム
Dependencies: SDFileSystem mbed
Fork of keiki2016_513 by
Diff: Fusokukei.h
- Revision:
- 0:085b2c5e3254
- Child:
- 7:9415448ae9ca
diff -r 000000000000 -r 085b2c5e3254 Fusokukei.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Fusokukei.h Tue Feb 23 13:05:06 2016 +0000 @@ -0,0 +1,46 @@ +#ifndef FUSOKUKEI_H +#define FUSOKUKEI_H + +#include "mbed.h" + +#define AIR_K 0.14737 +#define AIR_N 1.19 +#define AIR_A 1.4314 +#define AIR_B 0.209 +#define AIR_SUM_NUM 20 +#define AIR_BUFFER 30 + +float airSpeed = 0.0; +float airSpeed_ave = 0.0; +float airSpeed_max = 0.0; +int air_counter = 0; +float air_sum[AIR_SUM_NUM] = {0.0}; + +class Fusokukei{ + protected: + + public: + float make_ave(float s[], int n){ + float p = 0; + int i; + for(i = 0; i < n; i++){ + p += s[i]; + } + if(n != 0) + return p / n; + else + return 0; + } + + void calcAirSpeed(float x){ + air_sum[air_counter % AIR_SUM_NUM] = (float)AIR_K * (float)pow((double)x, 1 / AIR_N); + if(air_counter % AIR_SUM_NUM == 0) + air_counter = 0; + airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM); + airSpeed = airSpeed_ave*AIR_A+AIR_B; + if(airSpeed > airSpeed_max) + airSpeed_max = airSpeed; + air_counter++; + } +}; +#endif \ No newline at end of file