AD0CR |= 1 << 24; // 进行第一次转换
while ((ADDR & 0x80000000) == 0); // 等待转换结束
AD0CR |= 1 << 24; // 再次启动转换
while ((AD0DR & 0x80000000) == 0); // 等待转换结束
ADC_Data = AD0DR; // 读取ADC结果
ADC_Data = (ADC_Data >> 6) & 0x3ff;
ADC_Data = ADC_Data * 2475;
ADC_Data = ADC_Data / 1024;
ADC_Value=(ADC_Data/1)*30+ADC_Data;//测量0~70V采样,用30K与1K电阻之间分压获得最大值与基准值为2475
ADC_Value=ADC_Value*0.04+ADC_Value;//强制校准
以上CODE中ADC_Value变量为保留采样结果存储器,可是获得的结果数据值波动很大,请教解决办法?
一般AD的抖动常见问题集中在硬件部分:
基准源是什么?内部的?外部的?精度怎么样?温飘怎么样?
30K/1K的电阻,分压比这么大,电阻的相对精度计算在内了吗?
看程序是10bit AD吧?最小采样精度是多少?1bit?还是1LSB/2LSB?(5V/1024)作为最小单位,换算成0-70V,差别是多少?在可接受范围内吗?