gaosheng12138

基本问题:单片机ad采样,连续采样十次,对这十次数据取平均值。

注意:最开始的一次就是用当次的数据,以后每更新一个数据就取当前数据加上前九个数据,取平均。

先看代码:

static int _filter(int m)
{
  static int flag_first = 0, _buff[10], sum;
  const int _buff_max = 10;
  int i;
  
  if(flag_first == 0)
  {
    flag_first = 1;

    for(i = 0, sum = 0; i < _buff_max; i++)
    {
      _buff[i] = m;
      sum += _buff[i];
    }
    return m;
  }
  else
  {
    sum -= _buff[0];
    for(i = 0; i < (_buff_max - 1); i++)
    {
      _buff[i] = _buff[i + 1];
    }
    _buff[9] = m;
    sum += _buff[9];
    
    i = sum / 10.0;
    return i;
  }
}

前九次(不足十个数据),用第一个数据补。  

 

分类:

技术点:

相关文章:

  • 2021-08-27
  • 2022-12-23
  • 2021-09-06
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
  • 2021-11-03
  • 2021-10-15
  • 2022-12-23
  • 2021-11-02
相关资源
相似解决方案