我现在使用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;
返回;
时 时
//在这里读取数据
}