zwll 发表于 2022-4-11 23:15

怎么控制喂狗?

窗口看门狗,要求不能喂早了,也不能喂晚了。
这个不能喂早了,不知怎么控制?

zhanghqi 发表于 2022-4-11 23:17

什么意思?不是很明白你说的什么,能再解释一下这个现象吗

zwll 发表于 2022-4-11 23:19

以前用其它mcu喂狗,感觉比较长的延时,随便扔几个喂狗指令就可以了,现在不行了,不能早喂,这样计算起来会比较复杂,如果程序再复杂点,去精确记录这个不能喂早的时间,会非常困难。不知同志们是怎么处理这个窗口看门狗的,有好的建议说说啊

heweibig 发表于 2022-4-11 23:21

你以前是独立看门狗,只要在这个时间范围内喂就行了;

tian111 发表于 2022-4-11 23:23


比如你设定的窗口范围是1到2ms;
那你就在1.5ms的时候喂,通过定时器中断或其它方式都可以啊

liliang9554 发表于 2022-4-11 23:26

看代码结构吧。。最好在代码段喂狗,实在难实现就定时器

stly 发表于 2022-4-11 23:29

库函数中用中断的方式来喂狗的方法,窗口看门狗库函数相关源码和定义分布在文件stm32f10x_wwdg.c 文件和头文件 stm32f10x_wwdg.h 中

xxrs 发表于 2022-4-11 23:31

看门狗是不能用定时器中断做的,但是可以用定时器来计时。。就是在主函数对定时器变量观察。。

zhenykun 发表于 2022-4-11 23:33

用独立看门狗就可以了,

zwll 发表于 2022-4-11 23:35

我正在想另一种喂狗方式,就是每次喂狗,不用通用的哪条喂狗指令,而是去复位一下寄存器值,这样就没有窗口的概念了,就和原来的51单片机看门狗一样了。只是那么想,还在研究中

pengf 发表于 2022-4-11 23:38

定时器喂狗当然可以,如何操作完全看你的程序设计;

jiajs 发表于 2022-4-11 23:40

只要保证任何一个部分出了问题可以有效复位就好了;

yszong 发表于 2022-4-11 23:44

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

zwll 发表于 2022-4-11 23:46

经过进一步研究,实现了窗口看门狗,可以任意清看门狗的程序,不用再精确计算窗口时间,经过试验,在0-258ms之间,清看门狗都是可以的。设置方法就是
WWDG_SetWindowValue(0X7f);
      WWDG_Enable(0x7f);                     
让窗口数值和计数值一样。

renyaq 发表于 2022-4-11 23:49

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

jiajs 发表于 2022-4-11 23:51

如何喂狗是大学问啊

zwll 发表于 2022-4-11 23:53

嗯,我再好好缕一缕吧,有了好消息及时通知大家
页: [1]
查看完整版本: 怎么控制喂狗?