ADC转化最后一位跳

2019-12-31 19:17发布

谁有ADC滤波方法。我的最后移位老跳
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25条回答
lianglee
2020-01-02 14:06
变化5个AD就更新显示。变化在5个AD以内不更新显示。

  1.                 adc.index++;
  2.                 if(adc.index>=32)        // 读取16次
  3.                 {
  4.                         adc.mux[adc.state].now=adc.sum>>5;
  5.                         adc.sum=0;
  6.                         adc.index=0;
  7.                         // 向上,或向下变化2个AD值。
  8.                         if( (adc.mux[adc.state].now>(adc.mux[adc.state].next+ADC_ERRO_VALUE) ) ||  
  9.                                 ((adc.mux[adc.state].now+ADC_ERRO_VALUE)<adc.mux[adc.state].next) )
  10.                         {
  11.                                 adc.mux[adc.state].next=adc.mux[adc.state].now;
  12.                                 adc.mux[adc.state].debounce=Mux_Debounce(adc.state);
  13.                         }
  14.                         if(DecIs(adc.mux[adc.state].debounce)==0)
  15.                         {
  16.                                 adc.mux[adc.state].value=adc.mux[adc.state].next;        // 取得AD值。
  17.                                 adc.mux[adc.state].tc=Read_Tab(adc.state);
  18.                                 if((adc.mux[adc.state].channel==0) && (adc.mux[adc.state].value<R_TAB[0][130]))
  19.                                 {
  20.                                         adc.mux[adc.state].channel=1;
  21.                                         adc.mux[adc.state].next=0x0000;
  22.                                 }
  23.                                 else if((adc.mux[adc.state].channel==1) && (adc.mux[adc.state].value>R_TAB[1][126-125]))
  24.                                 {
  25.                                         adc.mux[adc.state].channel=0;
  26.                                         adc.mux[adc.state].next=0xFFFF;
  27.                                 }
  28.                                 else
  29.                                 {
  30.                                         if(adc.mux[adc.state].value>(1024-ADC_CHECK_VALUE))
  31.                                         {
  32.                                                 adc.mux[adc.state].err=ADC_OPEN;        // 开路
  33.                                         }
  34.                                         else if(adc.mux[adc.state].value<ADC_CHECK_VALUE)
  35.                                         {
  36.                                                 adc.mux[adc.state].err=ADC_SHORT;
  37.                                         }
  38.                                         else
  39.                                         {
  40.                                                 adc.mux[adc.state].err=ADC_NORMAL;        // 短路
  41.                                         }
  42.                                 }
  43.                         }
  44.                         adc.state++;
  45.                         if(adc.state>=ADC_END)
  46.                         {
  47.                                 adc.state=ADC_NULL;
  48.                         }
  49.                         Mux_Initial(adc.state);
  50.                 }
复制代码

一周热门 更多>