明月小厨 发表于 2012-12-31 10:31 
有的设计考虑不周,本身就有缺陷,只是处于临界的状态正好没有爆露;
但低温让他们显原形了;
数字电路部分通常 ...
我是用的SPI接口连接的ADS1118
每200ms读取上次转换结果,并开始下次数据采集
do
{
ADC_dat[0] = SPI_MasterTransmit(ADC_cmd[0]);
ADC_dat[1] = SPI_MasterTransmit(ADC_cmd[1]);
ADC_dat[2] = SPI_MasterTransmit(ADC_cmd[0]);
ADC_dat[3] = SPI_MasterTransmit(ADC_cmd[1]);
}
while(ADC_dat[3] & 0x01);
由于ADC温度降低一直没有完成转换 所以程序卡在了这个while循环里
我用示波器测试了一下,在室内温度的时候可以看到接口大概5次/秒转换,但是一旦放在户外,温度降低,ADC的转换时间就不对了,从示波器上就可以看到明显某一个采集时间拖长;当温度继续降低,一直无法完成转换,就一直在do-while里了;当不断电再次拿到屋内,温度上升慢慢就正常了。
我觉得这个应该是ADC芯片的原因,不知是否可以这样认为? |