打印

bug? ADC时钟不能太低?

[复制链接]
1693|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tyou|  楼主 | 2011-1-13 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用22M作为时钟,分频:
CLKDIV = (CLKDIV & ~(0xFF<<16)) | (200 << 16);

比如200,分频一大,下面代码就会死在里面的while, while前加延迟似乎可以解决。。。。。

for(,,)
{
     /* StartADC */
     set_ADST;
     while((ADSR & ADF) == 0);
     set_ADF;   
     result = ADDRx & 0xFFF;
}

另外,问问这么久了,芯唐有否正式errata sheet?

相关帖子

沙发
tyou|  楼主 | 2011-1-15 19:22 | 只看该作者
好似解决了

ADC和CPU是异步时钟, 好似再开ADC,CPU至少要等一个ADC CLOCK周期

使用特权

评论回复
板凳
hsbjb| | 2011-1-16 12:21 | 只看该作者
芯唐的资料确实有点少

使用特权

评论回复
地板
米其林r| | 2011-1-18 13:39 | 只看该作者
也就说必须在while前等一个周期是吗?

使用特权

评论回复
5
zhiwei| | 2011-1-19 12:16 | 只看该作者
是有点晕,资料不详。上次我用外部晶振,开PLL时钟都稳定后,想关了22MIRC。结构后面的IP允许、IP时钟设置等都无效,IP都不能运行了。。把IRC在IP时钟初始化后关掉就正常了,吓的我都不敢关了。。。
文档上bug也不少,更新太慢了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

98

帖子

3

粉丝