打印

关于看门狗时间的准确性

[复制链接]
1858|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gz_nick|  楼主 | 2015-5-18 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用pic16f1828 睡眠做定时唤醒计算,发现这个唤醒时间并不准确,我设定是512ms 唤醒一次,做了5个样品,只有一个唤醒时间是512ms,其余的或多或少,没有准确的。 (硬件和软件一致)

有什么解决方法?

请问大家有遇到这样的情况吗?
沙发
mcu_new| | 2015-5-18 13:29 | 只看该作者
应该是不准的,看门狗在规格中应该是个比较大的时间范围

使用特权

评论回复
板凳
gz_nick|  楼主 | 2015-5-18 16:08 | 只看该作者
内部振荡器模块具有两个独立振荡器和一个专用锁相环
HFPLL,可以产生以下3 个内部系统时钟源中的一个。
1. HFINTOSC (高频内部振荡器)出厂时已校准,
工作频率为16 MHz。HFINTOSC源通过500 kHz
MFINTOSC 源和专用锁相环HFPLL 产生。使用
OSCTUNE 寄存器(寄存器5-3),用户可通过
软件调整HFINTOSC 的频率。
2. MFINTOSC(中频内部振荡器)出厂时已校准,
工作频率为500 kHz。使用OSCTUNE 寄存器
(寄存器5-3),用户可通过软件调整MFINTOSC
的频率。
3. LFINTOSC(低频内部振荡器)未经校准,工作
频率为31 kHz。   

找到原因31khz  的原来是未经校准的。

使用特权

评论回复
地板
gx_huang| | 2015-5-18 16:17 | 只看该作者
很少有MCU的WDT专用时钟是经过校准的。
不过,你可以想办法在软件里测试WDT的实际溢出时间。

使用特权

评论回复
5
gz_nick|  楼主 | 2015-5-21 16:46 | 只看该作者
gx_huang 发表于 2015-5-18 16:17
很少有MCU的WDT专用时钟是经过校准的。
不过,你可以想办法在软件里测试WDT的实际溢出时间。 ...

是的,我现在用TIMER1 (接外晶振),判断wdt 的时间,然后将校准值放在 eerpom。

这样好吗?  或者还有什么好办法?请教了

使用特权

评论回复
6
gx_huang| | 2015-5-21 17:23 | 只看该作者
gz_nick 发表于 2015-5-21 16:46
是的,我现在用TIMER1 (接外晶振),判断wdt 的时间,然后将校准值放在 eerpom。

这样好吗?  或者还 ...

是这么处理的,没有更好的办法。
有些MCU的WDT溢出时间是连续可调的,可以直接修正。
有些MCU的WDT时间,只是几个档位式的,无法微调WDT溢出时间,只能调整溢出次数修正一下。
还得考虑每次重启时,重启的额外时间。
总之,用WDT溢出计时,不太准确的。

使用特权

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

本版积分规则

3

主题

12

帖子

0

粉丝