打印
[STM32F1]

喂狗怎么喂

[复制链接]
303|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2022-12-9 20:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
WDTCTL = WDT_MDLY_32;                   // Set Watchdog Timer interval to ~30ms

IE1 |= WDTIE;                                     // Enable WDT interrupt


怎么用它呢,中断里写什么,可以保证程序不跑偏?

使用特权

评论回复
沙发
supernan| | 2022-12-9 20:17 | 只看该作者
喂狗语句还是执行WDTCTL = WDT_MDLY_32

使用特权

评论回复
板凳
jiajs| | 2022-12-9 20:18 | 只看该作者
喂狗的时间是根据系统本身的情况制定的

使用特权

评论回复
地板
chuxh|  楼主 | 2022-12-9 20:21 | 只看该作者
库函数不是有参考吗

使用特权

评论回复
5
dengdc| | 2022-12-9 20:23 | 只看该作者
一般要在主循环处喂狗,

使用特权

评论回复
6
yszong| | 2022-12-9 20:24 | 只看该作者

另外在程序某些地方,如果执行某些任务的时间超过看门狗的时间,那么也需要喂狗。

使用特权

评论回复
7
renyaq| | 2022-12-9 20:26 | 只看该作者
这里如果是一个循环,那么必须注意这里可能会形成一个死循环!

使用特权

评论回复
8
zhanghqi| | 2022-12-9 20:28 | 只看该作者
把喂狗的语句放在小的循环体内时,要高度警惕这里会不会形成死循环。

使用特权

评论回复
9
chuxh|  楼主 | 2022-12-9 20:33 | 只看该作者
看门狗不是为了防止程序跑偏的,而是为了在程序跑飞时,能有一个可靠的恢复机制

使用特权

评论回复
10
pengf| | 2022-12-9 20:35 | 只看该作者
主循环显然比中断更合适,因为在某些情况下,即使程序跑飞了,中断也有可能触发,那么在中断中喂狗就不能及时察觉到主程序跑飞

使用特权

评论回复
11
renyaq| | 2022-12-9 20:37 | 只看该作者
要根据不同的应用来合理的安排才能获得最大的应用。照抄照搬就没有价值了。

使用特权

评论回复
12
houcs| | 2022-12-9 20:40 | 只看该作者
LZ要喂狗的话一定得对程序的执行时间把握好。

使用特权

评论回复
13
shimx| | 2022-12-9 20:41 | 只看该作者
防止程序跑飞而设置的看门狗,一般在主程序中设计

使用特权

评论回复
14
jiaxw| | 2022-12-9 20:42 | 只看该作者
在带操作系统(比如ucOSII)的环境下,如果是简单的防止程序陷入死循环,可以考虑在idle进程喂狗,这样可以避免过多的开销

使用特权

评论回复
15
huangchui| | 2022-12-9 20:44 | 只看该作者
喂狗是一个大学问啊

使用特权

评论回复
16
chuxh|  楼主 | 2022-12-9 20:46 | 只看该作者
在适当的地方喂一下就行

使用特权

评论回复
17
jlyuan| | 2022-12-9 20:49 | 只看该作者
怎么喂 需要对整个程序的流程都非常熟悉

使用特权

评论回复
18
pengf| | 2022-12-9 20:51 | 只看该作者
对时间的把握要精确

使用特权

评论回复
19
supernan| | 2022-12-9 20:53 | 只看该作者

不到万不得已 绝不开看门狗

使用特权

评论回复
20
chuxh|  楼主 | 2022-12-9 20:56 | 只看该作者

明白了,多谢大家讨论这么多哈

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝