在用8H4K64TL,按键唤醒掉电模式会偶尔碰到自行复位两次的问题,请求社友帮分析
本帖最后由 DebugLab 于 2024-9-21 12:41 编辑问题描述:
系统时钟24MHZ
数码管显示
开看门狗,看门狗计数器在掉电模式下是停止的,看门狗溢出时间5秒左右(256分频)
MCU 休眠是掉电模式,按键唤醒后通过指令执行软件复位,此时偶尔 (20%)的几率,会出现重复复位2次 才进入正常运行(现象就是,开机显示开机画面后,又复位从头再来一次)。只会重复2次,没有超过2次的情况。
上电没有这个问题,都是出现在休眠掉电模式按键唤醒后。
截几段代码,请社友帮分分析下哪里有问题:
1.程序开始
2,重复复位发生的位置:
3. 有个延时程序,在出问题的地方只是1秒。
4,看门狗初始化如下:
5.休眠前有喂狗
请社友帮看看,哪里疏忽了{:5_300:}
我现在怀疑是看门狗作怪,但是休眠前有喂狗,指令软件复位后,开头那小段运行不可能超过5秒的,为什么会复位呢?
复位之前再喂狗一下,看看是不是看门狗的问题 DebugLab 发表于 2024-9-21 12:43
复位之前再喂狗一下,看看是不是看门狗的问题
多谢建议!只是再次喂狗还不行的,我再次读芯片手册,找到原因了:
软件复位后,看门狗的寄存器溢出时间复位到了初始值,大概39毫秒左右,所以我的程序出现了二次复位。
看来,芯片手册需要不断重复读/
蒋文涛 发表于 2024-9-22 10:43
多谢建议!只是再次喂狗还不行的,我再次读芯片手册,找到原因了:
停止看门狗必须断电,软件复位无法停止看门狗,
看门狗一旦开启,只要有电就会一直运行
DebugLab 发表于 2024-9-22 21:34
停止看门狗必须断电,软件复位无法停止看门狗,
看门狗一旦开启,只要有电就会一直运行
...
借楼
请问大佬能否设置软件复位(IAP_CONTR)寄存器的SWBS位为1,然后启动看门狗,以达到看门狗复位后,用户数据区的数据保持不变的目的 Emmetttttt 发表于 2024-12-2 14:19
借楼
请问大佬能否设置软件复位(IAP_CONTR)寄存器的SWBS位为1,然后启动看门狗,以达到看门狗复位后, ...
可以,但要注意STARTUP.A51默认会软件初始化data
注意看门狗一旦打开软件无法关闭只能断电关闭 DebugLab 发表于 2024-12-2 14:30
可以,但要注意STARTUP.A51默认会软件初始化data
注意看门狗一旦打开软件无法关闭只能断电关闭 ...
好的感谢
页:
[1]