[应用相关] 看不出程序重新复位的迹象?

[复制链接]
 楼主| xxrs 发表于 2019-11-21 19:16 | 显示全部楼层 |阅读模式
我现在的看门狗初始化是:

WDTCTL = WDTPW+WDTCNTCL+WDTSSEL+WDTIS0; (WDTCTL = WDT_ARST_250;)

IE1|=WDTIE;

每次主循环末尾刷新看门狗:WDTCTL = WDTPW+WDTCNTCL+WDTSSEL+WDTIS0;

我想实现当程序跑飞时的看门狗复位,比如当判断某些标志不正确时,看门狗复位。怎么做?

例如:我现在想试试看按左键程序时,程序复位。我加了WDTCTL=WDTPW+WDTCNTCL+WDTSSEL;

可是怎么看不出程序重新复位的迹象?
yinxiangh 发表于 2019-11-21 19:19 | 显示全部楼层
看门狗实现的这种复位是不是让程序从main()最开头重新执行?
chenjunt 发表于 2019-11-21 19:22 | 显示全部楼层
可以在你关注的执行那里设置标记,每次喂够之前判断这些标记是否正常,如果正常,那么喂狗,如果不正常跳过喂够。这样就可以啦。
morrisk 发表于 2019-11-21 19:25 | 显示全部楼层

看门狗实现的这种复位是不是让程序从main()最开头重新执行?所有寄存器都回到初始值?
chuxh 发表于 2019-11-21 19:29 | 显示全部楼层

复位是不是基本上看不出来?时间很快
yinxiangh 发表于 2019-11-21 19:35 | 显示全部楼层
复位后I/O口OUT不变 DIR不是都清零了吗?
houcs 发表于 2019-11-21 19:39 | 显示全部楼层

环环相扣与冷热启动判断就能解决你的问题啦..
pangb 发表于 2019-11-21 19:41 | 显示全部楼层
你得在你看门狗周期内,喂狗才行的。
ousj 发表于 2019-11-21 19:44 | 显示全部楼层
程序复位还是能够看到的..
morrisk 发表于 2019-11-21 19:47 | 显示全部楼层
配置一个输出函数试试。
yinxiangh 发表于 2019-11-21 19:52 | 显示全部楼层
搞个标记嘛,看门狗复位后会有标志位的。你每次判断完增标志位就清掉。然后通过LED显示到底发生没。
观海 发表于 2019-12-10 14:33 | 显示全部楼层
在适当的地方喂狗
八层楼 发表于 2019-12-10 14:43 | 显示全部楼层
为什么要复位呀
晓伍 发表于 2019-12-10 14:49 | 显示全部楼层
感觉代码的位置怪怪的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部