常用ADC滤波处理

  #define N 70

  XDATA WORD Value_buf[N];
  XDATA DWORD ADCValue;

  static BYTE v_gu8cnt=0;
  static BYTE i=0;
  static XDATA DWORD AdcReturn=0;

Value_buf[i++]=Key_ScanValue(ADCKEY1);
    if(i==N)
        i=0;
    for(v_gu8cnt=0;v_gu8cnt<N;v_gu8cnt++)   //Smoothing filter 
        {
            v_gu16AD_Data+=Value_buf[v_gu8cnt];
            if(v_gu8cnt==N-1)
                {
                    AdcReturn=v_gu16AD_Data;
                    v_gu16AD_Data=Value_buf[v_gu8cnt];
                }
        }
    ADCValue=AdcReturn/N;

 

posted @ 2016-10-09 19:10  Prefog  阅读(1365)  评论(0编辑  收藏  举报