1
Dependencies: mcp2515 mbed-dev-f303
Moving_Average.cpp
00001 #include "mbed.h" 00002 #include "Moving_Average.h" 00003 00004 00005 00006 // Source是不断变化的 00007 float Moving_Average(unsigned int NN, float *FILTER, float Source) 00008 { 00009 00010 float AVER = 0.0f; 00011 float SUM = 0; 00012 unsigned char i; 00013 00014 00015 FILTER[NN] = Source; // 将接受到的数据放在均值滤波数组的“最后(倒数第2个)”元素里面 00016 00017 00018 // 把第一次进入的 Source 赋值给 FILTER[0] ~ FILTER[N-1] 00019 if(FILTER[NN+1] == 0) // FILTER[N+1]等于0,表示第一次进入该函数 00020 { 00021 for(i = 0; i < NN; i++) 00022 { 00023 FILTER[i] = Source; 00024 } 00025 00026 FILTER[NN+1] = 1; // 设置标记,已经进入过该函数,以后不再全部赋值 00027 } 00028 00029 00030 for(i = 0; i < NN; i++) 00031 { 00032 FILTER[i] = FILTER[i + 1]; 00033 SUM += FILTER[i]; 00034 } 00035 00036 AVER = SUM / NN; 00037 SUM = 0; 00038 00039 return AVER; 00040 }
Generated on Mon Aug 15 2022 03:33:21 by 1.7.2