1

Dependencies:   mcp2515 mbed-dev-f303

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Moving_Average.cpp Source File

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 }