1233

Dependencies:   cJSON_lib mcp2515- mbed-dev-f303 esp8266 yezhong_main_controller_copy_3

Committer:
yezhong
Date:
Fri Jun 24 07:58:26 2022 +0000
Revision:
0:e923de71caa5
111111

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yezhong 0:e923de71caa5 1 #include "mbed.h"
yezhong 0:e923de71caa5 2 #include "Moving_Average.h"
yezhong 0:e923de71caa5 3
yezhong 0:e923de71caa5 4
yezhong 0:e923de71caa5 5
yezhong 0:e923de71caa5 6 // Source是不断变化的
yezhong 0:e923de71caa5 7 float Moving_Average(unsigned int NN, float *FILTER, float Source)
yezhong 0:e923de71caa5 8 {
yezhong 0:e923de71caa5 9
yezhong 0:e923de71caa5 10 float AVER = 0.0f;
yezhong 0:e923de71caa5 11 float SUM = 0;
yezhong 0:e923de71caa5 12 unsigned char i;
yezhong 0:e923de71caa5 13
yezhong 0:e923de71caa5 14
yezhong 0:e923de71caa5 15 FILTER[NN] = Source; // 将接受到的数据放在均值滤波数组的“最后(倒数第2个)”元素里面
yezhong 0:e923de71caa5 16
yezhong 0:e923de71caa5 17
yezhong 0:e923de71caa5 18 // 把第一次进入的 Source 赋值给 FILTER[0] ~ FILTER[N-1]
yezhong 0:e923de71caa5 19 if(FILTER[NN+1] == 0) // FILTER[N+1]等于0,表示第一次进入该函数
yezhong 0:e923de71caa5 20 {
yezhong 0:e923de71caa5 21 for(i = 0; i < NN; i++)
yezhong 0:e923de71caa5 22 {
yezhong 0:e923de71caa5 23 FILTER[i] = Source;
yezhong 0:e923de71caa5 24 }
yezhong 0:e923de71caa5 25
yezhong 0:e923de71caa5 26 FILTER[NN+1] = 1; // 设置标记,已经进入过该函数,以后不再全部赋值
yezhong 0:e923de71caa5 27 }
yezhong 0:e923de71caa5 28
yezhong 0:e923de71caa5 29
yezhong 0:e923de71caa5 30 for(i = 0; i < NN; i++)
yezhong 0:e923de71caa5 31 {
yezhong 0:e923de71caa5 32 FILTER[i] = FILTER[i + 1];
yezhong 0:e923de71caa5 33 SUM += FILTER[i];
yezhong 0:e923de71caa5 34 }
yezhong 0:e923de71caa5 35
yezhong 0:e923de71caa5 36 AVER = SUM / NN;
yezhong 0:e923de71caa5 37 SUM = 0;
yezhong 0:e923de71caa5 38
yezhong 0:e923de71caa5 39 return AVER;
yezhong 0:e923de71caa5 40 }