当前位置:   article > 正文

c语言adc采集取平均值,单片机ADC采样算法----递推平均值采样法

c语言将adc采样的结果保存到数组中

在上一篇文章单片机ADC采样算法---平均值采样法中分析了平均值采样法的使用,上篇文章中的平均值采样法是连续采样100个数据,然后求平均值,这种方法存在一个问题,就是采集100个值之后,下一次又重新采集100个新的值,这两次采集的值是不连续的,相当于每次都是独立的采集来100个值,然后求平均值。这样计算出来的值有可能看不出来数据的变化趋势。希望在求平均值的时候每次读取到一个新的值,就将最早读取的旧值丢弃一个,相当于水管中的流水一样,有新的水流进来,就让最早进来的水流出去。这样采集到的数据就是连续变化的。这样通过采样值就能看出来采样数据是否发生了波动。

算法如下:

#define N 100

unsigned int filter4( void )

{

static unsigned int value_buf[N];

static unsigned int i = 0;

unsigned int count;

int  sum = 0;

value_buf[i++] = ReadVol_CH3();

if( i == N )

{

i = 0;

}

for( count = 0; count < N; count++ )

{

sum += value_buf[count];

}

return ( unsigned int )( sum / N );

}

通过数组将采样的数据存储起来,若数组存满之后&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/643554
推荐阅读
相关标签
  

闽ICP备14008679号