电路设计论坛
直播中

王强

7年用户 1344经验值
私信 关注
[问答]

ad7798/ad7799停止转换的原因?怎么解决?

    我现在使用ad7798/ad7799做精密AD转换,信号经放大后送到ad7798/ad7799,一般情况下,如果信号强度缓慢变化,工作一直正常;但如果信号强度剧烈变化时,ad7798/ad7799就停止转换,即使信号很弱了,也不能恢复。我在软件中重置ad7798/ad7799都无法解决问题,只能重启设备。
    我想知道,这种情况该如何处理?还是我重置方法错了?文档中说如果出错,需要送四个0xff重置,但没有说如何检查出错。

ad7798/ad7799设置为连续转换,系统通过时钟中断检查转换结果。时钟中断5ms调用一次。check_ad7798在时钟中断中调用。


   void check_ad7798(void)  
   {
  静态弧数 = 0;
      if(PINB   BIT(PB3)){          //每5ms调用一次,10次则是50ms。 按123HZ的转换速率,每次应该是10ms以下。
        count++;                  //所以50ms还没有转换完的话,肯定是出问题了,需要重新初始化。
      if(count<10)
  返回;
      init_ad7798();                        //重新初始化,送四个0xff
  unit_ad7798_channel(CONF_CH1,0);
  计数=0;
  返回;
  时 时

  //在这里读取数据
}

更多回帖

发帖
×
20
完善资料,
赚取积分