怎么控制喂狗?
窗口看门狗,要求不能喂早了,也不能喂晚了。这个不能喂早了,不知怎么控制? 什么意思?不是很明白你说的什么,能再解释一下这个现象吗
以前用其它mcu喂狗,感觉比较长的延时,随便扔几个喂狗指令就可以了,现在不行了,不能早喂,这样计算起来会比较复杂,如果程序再复杂点,去精确记录这个不能喂早的时间,会非常困难。不知同志们是怎么处理这个窗口看门狗的,有好的建议说说啊
你以前是独立看门狗,只要在这个时间范围内喂就行了;
比如你设定的窗口范围是1到2ms;
那你就在1.5ms的时候喂,通过定时器中断或其它方式都可以啊 看代码结构吧。。最好在代码段喂狗,实在难实现就定时器
库函数中用中断的方式来喂狗的方法,窗口看门狗库函数相关源码和定义分布在文件stm32f10x_wwdg.c 文件和头文件 stm32f10x_wwdg.h 中
看门狗是不能用定时器中断做的,但是可以用定时器来计时。。就是在主函数对定时器变量观察。。
用独立看门狗就可以了,
我正在想另一种喂狗方式,就是每次喂狗,不用通用的哪条喂狗指令,而是去复位一下寄存器值,这样就没有窗口的概念了,就和原来的51单片机看门狗一样了。只是那么想,还在研究中
定时器喂狗当然可以,如何操作完全看你的程序设计;
只要保证任何一个部分出了问题可以有效复位就好了;
只要别再定时器中断程序里喂狗就行了。
经过进一步研究,实现了窗口看门狗,可以任意清看门狗的程序,不用再精确计算窗口时间,经过试验,在0-258ms之间,清看门狗都是可以的。设置方法就是
WWDG_SetWindowValue(0X7f);
WWDG_Enable(0x7f);
让窗口数值和计数值一样。 确实,我也是后来才知道,刚开始还打算在wwdg的中断里喂狗呢。你是8M主频,没用PLL,所以是258ms
如何喂狗是大学问啊
嗯,我再好好缕一缕吧,有了好消息及时通知大家
页:
[1]