TI中文支持网
TI专业的中文技术问题搜集分享网站

ADCRESULT寄存器的值一直是0FFF,如果引脚悬空的话,应该是0000才对,不知道为什么会出现这个情况?

 完全是按motorware里面的第一个例程给的,是个LED2的闪烁,观察IO口有高低电平产生,但是ADCRESULT的结果不对,由谁能给解释一下么?感激

囧:

你单步调试,当程序复位到main函数头上的时候就是这样的值吗?

 完全是按motorware里面的第一个例程给的,是个LED2的闪烁,观察IO口有高低电平产生,但是ADCRESULT的结果不对,由谁能给解释一下么?感激

yufei chen:

回复 囧:

终于有人回复啦!

C:\ti\controlSUITE\device_support\f2806x\v140\F2806x_examples\adc_soc   我用的是CONTROL_SUITE里面的例程。

我用单步调试的时候,运行主函数时,结果寄存器里面是0000,应该是开始转换后,结果寄存器里面的值就变成了0FFF

 完全是按motorware里面的第一个例程给的,是个LED2的闪烁,观察IO口有高低电平产生,但是ADCRESULT的结果不对,由谁能给解释一下么?感激

囧:

回复 yufei chen:

Yufei

如果你把ADC的pin串一个电阻接地,还会出现这样的值吗?因为悬空是一个不稳定的状态,不太好判断到底是什么样的影响。另外你可以单步调试看究竟是哪一步使得ADC的值变成这样,是ADC初始化完了以后,还是ADC在SOC触发后,开始采样就这样了。

 完全是按motorware里面的第一个例程给的,是个LED2的闪烁,观察IO口有高低电平产生,但是ADCRESULT的结果不对,由谁能给解释一下么?感激

yufei chen:

回复 囧:

初始化ADC之后,adcresult结果是0000,就是进入主函数里面最后的for(;;)循环,寄存器结果变成了0FFF。

另外,我再初始化时钟函数里面,禁用了ADC时钟后,还可以产生EOC信号,以及EOC触发的ADCINT1中断。

 完全是按motorware里面的第一个例程给的,是个LED2的闪烁,观察IO口有高低电平产生,但是ADCRESULT的结果不对,由谁能给解释一下么?感激

囧:

回复 yufei chen:

yufei,

那说明你变化是因为外部干扰导致的,你把ADC接地就不会这样了。

就算禁止ADC时钟,只要你强制触发了ADC SOC就会有EOC,有了EOC就会产生中断。

赞(0)
未经允许不得转载:TI中文支持网 » ADCRESULT寄存器的值一直是0FFF,如果引脚悬空的话,应该是0000才对,不知道为什么会出现这个情况?
分享到: 更多 (0)