打印
[STM32F0]

stm32的 窗口看门狗程序应该怎么喂狗?

[复制链接]
6566|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
c555|  楼主 | 2016-11-28 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  窗口看门狗,要求不能喂早了,也不能喂晚了。
  这个不能喂早了,不知怎么控制?
  以前用其它mcu喂狗,感觉比较长的延时,随便扔几个喂狗指令就可以了,现在不行了,不能早喂,这样计算起来会比较复杂,如果程序再复杂点,去精确记录这个不能喂早的时间,会非常困难。不知同志们是怎么处理这个窗口看门狗的,有好的建议说说啊
沙发
mmuuss586| | 2016-11-28 11:17 | 只看该作者
你以前是独立看门狗,只要在这个时间范围内喂就行了;

使用特权

评论回复
板凳
mmuuss586| | 2016-11-28 11:19 | 只看该作者
比如你设定的窗口范围是1到2ms;
那你就在1.5ms的时候喂,通过定时器中断或其它方式都可以啊

使用特权

评论回复
地板
皈依| | 2016-11-28 14:46 | 只看该作者
看代码结构吧。。最好在代码段喂狗,实在难实现就定时器

使用特权

评论回复
5
豆腐块| | 2016-11-28 17:26 | 只看该作者
库函数中用中断的方式来喂狗的方法,窗口看门狗库函数相关源码和定义分布在文件stm32f10x_wwdg.c 文件和头文件 stm32f10x_wwdg.h 中

使用特权

评论回复
6
mintspring| | 2016-11-28 18:59 | 只看该作者
看门狗是不能用定时器中断做的,但是可以用定时器来计时。。就是在主函数对定时器变量观察。。

使用特权

评论回复
7
yklstudent| | 2016-11-28 19:02 | 只看该作者
用独立看门狗就可以了,

使用特权

评论回复
8
c555|  楼主 | 2016-11-29 08:14 | 只看该作者
我正在想另一种喂狗方式,就是每次喂狗,不用通用的哪条喂狗指令,而是去复位一下寄存器值,这样就没有窗口的概念了,就和原来的51单片机看门狗一样了。只是那么想,还在研究中

使用特权

评论回复
9
mcu5i51| | 2016-11-29 08:34 | 只看该作者
mintspring 发表于 2016-11-28 18:59
看门狗是不能用定时器中断做的,但是可以用定时器来计时。。就是在主函数对定时器变量观察。。 ...

定时器喂狗当然可以,如何操作完全看你的程序设计;
只要保证任何一个部分出了问题可以有效复位就好了;

使用特权

评论回复
10
mintspring| | 2016-11-29 11:35 | 只看该作者
mcu5i51 发表于 2016-11-29 08:34
定时器喂狗当然可以,如何操作完全看你的程序设计;
只要保证任何一个部分出了问题可以有效复位就好了; ...

只要别再定时器中断程序里喂狗就行了。

使用特权

评论回复
11
c555|  楼主 | 2016-11-30 08:54 | 只看该作者
经过进一步研究,实现了窗口看门狗,可以任意清看门狗的程序,不用再精确计算窗口时间,经过试验,在0-258ms之间,清看门狗都是可以的。设置方法就是
WWDG_SetWindowValue(0X7f);
        WWDG_Enable(0x7f);                     
让窗口数值和计数值一样。

使用特权

评论回复
12
Fcg_xx1989| | 2018-8-16 15:41 | 只看该作者
c555 发表于 2016-11-30 08:54
经过进一步研究,实现了窗口看门狗,可以任意清看门狗的程序,不用再精确计算窗口时间,经过试验,在0-258m ...

确实,我也是后来才知道,刚开始还打算在wwdg的中断里喂狗呢。你是8M主频,没用PLL,所以是258ms

使用特权

评论回复
13
paotangsan| | 2018-8-17 09:31 | 只看该作者
如何喂狗是大学问啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

264

主题

556

帖子

3

粉丝