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

2019-12-25 18:50发布

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

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

回复的帖子中 已经 有解决办法给你了。
kebaojun305
3楼-- · 2019-12-28 13:44
kebaojun305 发表于 2017-8-12 10:02
回复的帖子中 已经 有解决办法给你了。

我的意思是除了状态机,和不断喂狗,你还有其他好方法吗
蜗牛蜗牛
4楼-- · 2019-12-28 17:28
程序思想不对,主程序大循环一定要很快轮回,也就是说各模块都不能有阻塞型的延时,延时时必须把释放CPU给其他人用。可以用没操作系统的话可以用状态机写
jssd
5楼-- · 2019-12-28 21:33
jssd 发表于 2017-8-12 10:07
程序思想不对,主程序大循环一定要很快轮回,也就是说各模块都不能有阻塞型的延时,延时时必须把释放CPU给 ...

谢谢
蜗牛蜗牛
6楼-- · 2019-12-28 23:45
 精彩回答 2  元偷偷看……