angmall
发表于 2023-12-23 11:22:29
liuyang21168 发表于 2023-12-23 08:51
我也感觉像看门狗的最大溢出时间导致复位,还有掉电唤醒定时器大约也是这个时间溢出,在程序开始的地方,需 ...
有没有可能,你在ISP下载时,启动了看门狗。
注意:看门狗定时器可使用软件方式启动,也可硬件自动启动,一旦看门狗定时器启动后,软件
将无法关闭,必须对单片机进行重新上电才可关闭。软件启动看门狗只需要对 EN_WDT 位写 1
即可。若需要硬件启动看门狗,则需要在 ISP 下载时进行如下图所示的设置:
liuyang21168
发表于 2023-12-23 14:19:14
我在读EEPROM时启动了看门狗:
START_WDT(); // 启动看门狗
for (i = 0; i < u16Len; i++)
{
pbyDest = IapReadByte(uiAddr + i);
RESET_WDT(); // 复位看门狗
}
STOP_WDT(); // 停止看门狗
如果 uiAddr 超出了EEPROM的地址范围,会不会导致IapReadByte(uiAddr + i)函数不能结束,结果饿死了看门狗?
_奶咖君_
发表于 2023-12-23 14:29:06
虽然我是8H手册 但是在看门狗这里 STC的做法是一脉相传。 一旦开启 软件不允许关闭
liuyang21168
发表于 2023-12-24 09:01:39
有些回复怎么被删除了,是管理员删除的,还是被黑客删除的?
神农鼎
发表于 2023-12-24 10:31:59
liuyang21168 发表于 2023-12-24 09:01
有些回复怎么被删除了,是管理员删除的,还是被黑客删除的?
有些恶意灌水,被自动删除,可能关联到这了
神农鼎
发表于 2023-12-24 10:39:33
把这个程序烧进去测试下:
没问题,就是你原软件有问题
有问题,就是你硬件有问题
liuyang21168
发表于 2023-12-24 11:03:04
非常感谢各位高手的指点,软件复位的问题已经解决。
因为我没有仔细阅读stc15的数据手册,看门狗启动后,不能停止。
我一直认为看门狗可以用指令停止,所以没有按时喂狗,导致
出现看门狗溢出复位。
shanmudadao
发表于 2023-12-25 09:14:50
_奶咖君_ 发表于 2023-12-23 08:33
咋感觉上开了看门狗,没有喂,被狗咬死的说
{:4_250:}
_奶咖君_
发表于 2023-12-25 09:24:32
shanmudadao 发表于 2023-12-25 09:14
以前出过一样的问题,,,就有这样的经验了,,其实还是自己看手册不认真,想当然了。。所以手册很重要
lzl1okOK
发表于 2023-12-25 14:55:34
是不是开看门狗了,没喂狗?