打印
[STM32F1]

怎么控制喂狗?

[复制链接]
590|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
你以前是独立看门狗,只要在这个时间范围内喂就行了;

使用特权

评论回复
5
tian111| | 2022-4-11 23:23 | 只看该作者

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

使用特权

评论回复
6
liliang9554| | 2022-4-11 23:26 | 只看该作者
看代码结构吧。。最好在代码段喂狗,实在难实现就定时器

使用特权

评论回复
7
stly| | 2022-4-11 23:29 | 只看该作者
库函数中用中断的方式来喂狗的方法,窗口看门狗库函数相关源码和定义分布在文件stm32f10x_wwdg.c 文件和头文件 stm32f10x_wwdg.h 中

使用特权

评论回复
8
xxrs| | 2022-4-11 23:31 | 只看该作者
看门狗是不能用定时器中断做的,但是可以用定时器来计时。。就是在主函数对定时器变量观察。。

使用特权

评论回复
9
zhenykun| | 2022-4-11 23:33 | 只看该作者
用独立看门狗就可以了,

使用特权

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

使用特权

评论回复
11
pengf| | 2022-4-11 23:38 | 只看该作者
定时器喂狗当然可以,如何操作完全看你的程序设计;

使用特权

评论回复
12
jiajs| | 2022-4-11 23:40 | 只看该作者
只要保证任何一个部分出了问题可以有效复位就好了;

使用特权

评论回复
13
yszong| | 2022-4-11 23:44 | 只看该作者
只要别再定时器中断程序里喂狗就行了。

使用特权

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

使用特权

评论回复
15
renyaq| | 2022-4-11 23:49 | 只看该作者
确实,我也是后来才知道,刚开始还打算在wwdg的中断里喂狗呢。你是8M主频,没用PLL,所以是258ms

使用特权

评论回复
16
jiajs| | 2022-4-11 23:51 | 只看该作者
如何喂狗是大学问啊

使用特权

评论回复
17
zwll|  楼主 | 2022-4-11 23:53 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝