stm8的halt模式,是不是会影响万年历的精度

2019-07-19 20:52发布

最近公司在做周期唤醒的功能,要求用户设置时间,然后产品就可以按照一定的时间每天或者每周定时唤醒。平时都是处于halt状态(或低功耗),把LSI二分频作为RTC时钟源,然后把唤醒时钟的分频器设为16分频。38k/2=19K   19K/16=1.8187KHz

我把RTC时钟启动之后就开启中断,然后设置16位唤醒自动装载寄存器,然后设置万年历的年月日时分秒。然后在一个while循环里点灯。通过外部按
键中断触发halt()模式,触发时以灭灯作标志。在进入halt模式之后再次唤醒时,发现RTC时钟比原来的时间慢了。我设置休眠唤醒的时间是17秒左右这是怎么回事?是不是在halt模式下,会影响万年历的精度?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
Electronic
1楼-- · 2019-07-22 02:19
 精彩回答 2  元偷偷看……
aouwen
2楼-- · 2019-07-22 04:38
 精彩回答 2  元偷偷看……
fankai
3楼-- · 2019-07-22 07:57
本帖最后由 fankai 于 2017-3-14 11:26 编辑
aouwen 发表于 2017-3-14 10:48
请问你之前周期唤醒的问题决解了吗?我发现这里有句话,可能是你要的答案。就是第二句,轮询WUTWF位直到R ...

我没看具体寄存器的事,在更新之前,禁用自动唤醒就行了,库函数里面禁用自动唤醒,也是操作的这个寄存柜,CR2位,你说的哪个自动预装载  就是设置休眠时间的那个吧,分成高8位和低8位
aouwen
4楼-- · 2019-07-22 13:53
fankai 发表于 2017-3-14 11:21
我没看具体寄存器的事,在更新之前,禁用自动唤醒就行了,库函数里面禁用自动唤醒,也是操作的这个寄存柜 ...

RTC_WakeUpCmd(ENABLE);
这句话是不是一执行就开始计时?
每次从休眠模式被这个唤醒的话,如果不用RTC_WakeUpCmd(DISABLE);就会重新计时,到时间就中断?

一周热门 更多>