stm32看门狗时间不够用,怎么处理

2019-12-25 18:50发布

本帖最后由 蜗牛蜗牛 于 2017-8-12 08:56 编辑

现在情况是这样的,主程序时间50秒左右,期间开启了定时器定时器时间是20ms ,一直是在定时器中喂狗 喂狗值是(4.625),也就是1秒,现在发现程序运行几天还会莫名其妙的死机(我猜测是主程序死了,但是定时器一直在运行所以单片机不复位),
按复位键就好另外主程序里面还有个小程序,小程序运行时间大约是1分钟,不过主程序的小程序,满足条件后才触发,一般也不触发,运行1年也就触发几次 ,
现在我想解决方法:主程序到处喂狗,直到满足不使单片机复位位置为止,
还有没有好的,喂狗方法,?定时器中断喂狗好像不行,
星期一要是没有好的解决方案,就按喂狗时间5折到处喂狗了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
38条回答
蜗牛蜗牛
1楼-- · 2019-12-26 17:23
蜗牛蜗牛 发表于 2017-8-12 08:52
主循环时间太长,最短40秒,最长时候1分40秒,所以想到用定时器,结果死机了狗也不管用 ...

如果没有用操作系统,把主任务分割使用状态机
你这最短40秒不叫主循环了,这叫一条道走到底。
lusson
2楼-- · 2019-12-26 20:44
lusson 发表于 2017-8-12 08:55
如果没有用操作系统,把主任务分割使用状态机
你这最短40秒不叫主循环了,这叫一条道走到底。 ...

没有操作系统 主程序是个while1 是一条道走到底,
蜗牛蜗牛
3楼-- · 2019-12-27 01:45
 精彩回答 2  元偷偷看……
fenglove
4楼-- · 2019-12-27 07:38
蜗牛蜗牛 发表于 2017-8-12 08:52
主循环时间太长,最短40秒,最长时候1分40秒,所以想到用定时器,结果死机了狗也不管用 ...

那里长就在那里喂,一直喂
xiaorenren
5楼-- · 2019-12-27 12:22
什么样的程序 主程序下来能50S   实在是想不通
STT
6楼-- · 2019-12-27 14:34
怎么会有那么长的业务流程?