打印

求助:PIC12F200时钟频率问题

[复制链接]
1385|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duanbixing|  楼主 | 2016-6-27 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近一个小项目需要用到PIC12F200,这个芯片内部晶振手册上说精度1%,4MHZ,但是我在实际使用的时候发现,调用库里的__delay_us(10),实际的延时大概在12-13us,并不精确,而且数值越大所差的时间就越多,100us的定时实际上都120多us了。然后我也寻找解决方法,有的说需要写时钟校验值,那个值我找了一下,用烧写器读取芯片,在0XFF处看到一个值是C28,我就在每次烧写的时候都把这个位置的值手动改成C28,但是没效果。我又在程序开始的地方加上asm("MOVWF 0x05h");但是也没啥用,我用这个单片机主要是进行一个无线软解码的工作,所以对定时的要求严格一些。请问有解决的方法吗?还希望懂的人指点一下
沙发
JY-DX-JY| | 2016-6-28 17:53 | 只看该作者
用外部晶振

使用特权

评论回复
板凳
michaellengleng| | 2016-6-29 15:45 | 只看该作者
芯片有么有问题 这个很不是很复杂的东西

使用特权

评论回复
地板
zhanzr21| | 2016-7-4 18:05 | 只看该作者
__delay_us(10)這種函數 永遠不可能準確, 這是軟件結構決定了的, 並非內部晶體的誤差
看你的需求需要精確的定時, 這樣的話 只能寫定時器中斷來達到這精度

使用特权

评论回复
5
NE5532| | 2016-7-5 16:00 | 只看该作者
Delay这种函数运行时间本来就不是线性的,你想看时钟频率,去找配置字里有没有振荡输出的配置位,输出来直接测。另外1%是有条件的,温度和电压,任何一个条件不满足就不是1%了,超过这个精度要求的,用晶振。

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝