经过两天的推敲,个人理解如下:
1、有个7位递减计数器(WWDG->CR),就这个计数器和窗口计数器(WWDG->CFR)决定什么时候喂狗。
2、当 0x40 < 计数器值(tr) < 窗口值(wr) 时,这时候最适合喂狗了,也只有在这时候喂狗才合适;
3、当计数器的值从0x40变到0x3F的时候,将产生看门狗复位;当然在要产生复位的前一段时间,如果开启了提前唤醒中断,那么就会进入中断,在中断函数里,我们需要及时喂狗,否则会产生复位;
4、据网上资料介绍,在这个中断里面一般不进行喂狗,一般是系统去世前的“遗嘱”,比如存储重要的数据等。这个就需要根据个人需要设计。
下面择取部分程序,可以根据程序说明,计算出喂狗的时间,大家注意推敲,欢迎交流!
u8 WWDG_CNT = 0x7F;
void WWDG_Init(u8 tr, u8 wr, u32 fprer)
{
}
void WWDG_IRQHandler(void)
{
}
int main(void)
{
}
实践出真知!
试验现象:DS0(红灯)先亮,再灭,DS1无变化。
试验现象说明:在规定的时间段及时的喂狗了,程序没有进入中断函数。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』