gang-366961 发表于 2012-7-19 18:10:17

ADC采样值不准【悬赏贴】

  
 
ADC_TDR=0XFF; //关闭
ADC_CR2=0B1000;    //右对齐;
 
ADC_CSR=0X03;
ADC_CR1=0X01;//启动;
while((ADC_CSR & 0x80) == 0); // 等待ADC结束
ADC_CSR&=0X7F; //清零第7位;
c=ADC_DRH*256+ADC_DRL;
 

上面STM8S是建的一个ADC单次采样的部分,CR1在这之前已经激活过,
我用一个电位器调压给一个AD口,当电位器调整后,不动。第一次采样的值,都不准 ,然后采样第二次才准。
我是调完之后,运行单步测试的,调整完电位器后,再去采样,时间都超过1S以上,所以采到的值应该是稳定的。
各位帮忙看看,是写的不对,还是有其它什么要注意的。

 

gang-366961 发表于 2012-7-20 13:39:33

RE:ADC采样值不准【悬赏贴】

每次只要采样电压调整后,有时第一次采样的结果总,是不对的,我开始怀疑AD是不是在调整电压的时候,自己启动了,或者程序的写法有题,导致第一次结果不对。

yjwpm 发表于 2012-7-23 09:36:55

RE:ADC采样值不准【悬赏贴】

你换一下使用ST提供的库函数试试。这样因该会好用了,使用寄存器的方式,需要你对寄存器非常了解,才能很好的控制。。。

shahexu 发表于 2012-7-23 11:46:56

回复:ADC采样值不准【悬赏贴】

没用过STM8,你可以看看是不是ADC的采样保持时间,有没有关系,可能和你通道切换有关系

么回家 发表于 2012-7-23 15:34:27

RE:ADC采样值不准【悬赏贴】

第一次采样的值都不准 ,第二次采样才准
奇怪的地方
使用ST提供的库函数试下吧

ImCQ 发表于 2012-7-26 15:34:53

回复:ADC采样值不准【悬赏贴】

我以前也遇到过,解决办法是抛弃第一次的值
页: [1]
查看完整版本: ADC采样值不准【悬赏贴】