窗口看门和独立看门狗最大的不同就是,独立看门狗的喂狗限制是在狗递减量前,而窗口看门狗的喂狗限制则是在一个窗口喂狗,即喂狗时间必须在一个时间段内,在狗饱腹时和饥饿时喂狗都会触发恢复
窗口期的下限为0x40,资源本地或等于0x7F R LR
是重组件内存,帮助设置独立看门狗的选择值。TR是窗口看门独立狗的投票值,设置,WR是看门狗的值,由独立用户设置。
WWDG功能窗口窗口用户
①。窗口看门狗时钟
窗口看门狗时钟来自PCLK1,PCLK1最大是45M,由RCC时钟控制器开启。
②。 时钟计数器位
计数器位时钟由CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器CFR的位8:7 WDGTB [1:0]配置,可以是[0,1,2,3],还有CK除以时钟时钟=PCLK14096,4096是固定死的。 tpclk1 * 4096 * (2^WDGTB)。
③。 计数器位
窗口显示看门狗的计数器位的英文一个递减计数器位,共有7位,其值存在控制寄存器CR的位6:0,即T [6:0],当7个位全部为1时是0x7F的,这个是最大值,当递减到T6位变为0时,即从0X40变为0X3F时,会产生看门狗复位。
这个值 0X40 是看门狗能够递减到的时间,所以决策的值只能是:0X40~0X7F 之间,实际上是计算是 T[5:0]。
当递减递递减到 0X40 的时候,还不会马上产生复位,如果使了能提前中断:CFR位9 EWI 1,则产生提前解除复位,如果真进入这个中断事件,就说明程序确定是出问题了,然后在中断服务程序里面我们就需要做最重要的工作,比如保存重要数据,或者报警等,中断我们也叫它死前中断。
窗口窗口值
看门狗必须在一个窗口窗口才可以喂狗,其中窗口窗口的值是固定的0X40,上窗口的可以改变,具体的由配置值控制CFR的位6:0 W[6:0 ]设置。
其值必须大于或等于0X40,小于或等于0x7F的。
如果我们要监控的程序段甲运行的时间为钽,当执行完这段程序之后就要进行喂狗,如果在窗口时间内没有喂一般决策的值TR设置成最大0X7F,图片是WR,决策减一个数的时间为T,那么时间:(TR-WR)*T 估计应该大于Ta结束,这段时间刚好执行完程序A之后喂狗,监控的作用,这样可以算出WR的值是多少。
计算看狗门超时时间
知道门狗当到达0x40 ,然后减一为0x3F时即触发,
故其计数时长显为0x40-0x3F = 1;
其可选计数时长为0x7F-0x3F = 0x7F-0x3F = 0x40 = 64;
故上表中当预频器为1时超时即通过Tpclk1 * 4096 * (2^WDGTB) = 1/30 * 4096 *2^0 = 136.53us 计算而得;
超时即通过Tpclk1 * 4096 * (2^WDGTB) * 64= 1/30 * 4096 *2^0 = 8.74ms 计算而得。
在窗口看门狗的配置当中,独立看门狗有一个选择配置项“遗赠中断”,即唤醒中断WWDG Early Wakeup interrupt(EWI),可以在精确的递减0x40 即将到来的时候触发一个中断,在中断中断中可以做一些复杂的重要事件,如保存发送等。
bsp_wwdg.h
bsp_wwdg.c
stm32f4xx_it.c
main.c
窗口看门和独立看门狗最大的不同就是,独立看门狗的喂狗限制是在狗递减量前,而窗口看门狗的喂狗限制则是在一个窗口喂狗,即喂狗时间必须在一个时间段内,在狗饱腹时和饥饿时喂狗都会触发恢复
窗口期的下限为0x40,资源本地或等于0x7F R LR
是重组件内存,帮助设置独立看门狗的选择值。TR是窗口看门独立狗的投票值,设置,WR是看门狗的值,由独立用户设置。
WWDG功能窗口窗口用户
①。窗口看门狗时钟
窗口看门狗时钟来自PCLK1,PCLK1最大是45M,由RCC时钟控制器开启。
②。 时钟计数器位
计数器位时钟由CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器CFR的位8:7 WDGTB [1:0]配置,可以是[0,1,2,3],还有CK除以时钟时钟=PCLK14096,4096是固定死的。 tpclk1 * 4096 * (2^WDGTB)。
③。 计数器位
窗口显示看门狗的计数器位的英文一个递减计数器位,共有7位,其值存在控制寄存器CR的位6:0,即T [6:0],当7个位全部为1时是0x7F的,这个是最大值,当递减到T6位变为0时,即从0X40变为0X3F时,会产生看门狗复位。
这个值 0X40 是看门狗能够递减到的时间,所以决策的值只能是:0X40~0X7F 之间,实际上是计算是 T[5:0]。
当递减递递减到 0X40 的时候,还不会马上产生复位,如果使了能提前中断:CFR位9 EWI 1,则产生提前解除复位,如果真进入这个中断事件,就说明程序确定是出问题了,然后在中断服务程序里面我们就需要做最重要的工作,比如保存重要数据,或者报警等,中断我们也叫它死前中断。
窗口窗口值
看门狗必须在一个窗口窗口才可以喂狗,其中窗口窗口的值是固定的0X40,上窗口的可以改变,具体的由配置值控制CFR的位6:0 W[6:0 ]设置。
其值必须大于或等于0X40,小于或等于0x7F的。
如果我们要监控的程序段甲运行的时间为钽,当执行完这段程序之后就要进行喂狗,如果在窗口时间内没有喂一般决策的值TR设置成最大0X7F,图片是WR,决策减一个数的时间为T,那么时间:(TR-WR)*T 估计应该大于Ta结束,这段时间刚好执行完程序A之后喂狗,监控的作用,这样可以算出WR的值是多少。
计算看狗门超时时间
知道门狗当到达0x40 ,然后减一为0x3F时即触发,
故其计数时长显为0x40-0x3F = 1;
其可选计数时长为0x7F-0x3F = 0x7F-0x3F = 0x40 = 64;
故上表中当预频器为1时超时即通过Tpclk1 * 4096 * (2^WDGTB) = 1/30 * 4096 *2^0 = 136.53us 计算而得;
超时即通过Tpclk1 * 4096 * (2^WDGTB) * 64= 1/30 * 4096 *2^0 = 8.74ms 计算而得。
在窗口看门狗的配置当中,独立看门狗有一个选择配置项“遗赠中断”,即唤醒中断WWDG Early Wakeup interrupt(EWI),可以在精确的递减0x40 即将到来的时候触发一个中断,在中断中断中可以做一些复杂的重要事件,如保存发送等。
bsp_wwdg.h
bsp_wwdg.c
stm32f4xx_it.c
main.c
举报