OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 16357|回复: 10

窗口看门狗的喂狗时间是如何计算的

[复制链接]

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2015-8-18
在线时间
17 小时
发表于 2016-2-25 16:13:27 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 kingpage 于 2016-2-26 00:20 编辑

想请教一下窗口看门狗的允许喂狗的时间范围值是如何计算的,比如我在初始化时设了计数器值为:0X7F,窗口值为:0X5F,分频数是8,即:WWDG_Init(0X7F,0X5F,3).那么要花多长时间,计算器值会到达上窗口值0X5F,多长时间会到达下窗口值0X40,从初始化时所设定的计算器值要到达这两个上、下窗口值所耗的时间该怎么计算,公式是什么?如果知道这两个时间点,才好知道开启看门狗后,需要在什么时间范围内喂狗才不会产生复位。按照书上的计算公式:Twwdg=(4096*2^WDGTB*(T[5:0]+1))/Fpclk1,怎么这个公式只与分频数、计数器值、时钟频率有关,却与窗口值(0X5F)无关呢?在相同分频数下,允许喂狗的时间范围值应该与初始化时所设定的计数器值和窗口值有很大关系的啊。麻烦大家指导一下。

最佳答案

查看完整内容[请看2#楼]

你没看懂这个图: 窗口看门狗: 1、到达tWWDG这个时间后如果还不喂狗,则会复位, 2、如果没有到达窗口值(即处于Refresh not allowed区间)便喂狗的话,也会复位。 传统的看门狗没有窗口,即没有窗口看门狗的第2条
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-2-25 16:13:28 | 显示全部楼层
你没看懂这个图:

0.png

窗口看门狗:
1、到达tWWDG这个时间后如果还不喂狗,则会复位,
2、如果没有到达窗口值(即处于Refresh not allowed区间)便喂狗的话,也会复位。


传统的看门狗没有窗口,即没有窗口看门狗的第2条
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-2-25 17:13:58 | 显示全部楼层
T[5:0]
回复

使用道具 举报

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2015-8-18
在线时间
17 小时
 楼主| 发表于 2016-2-25 23:57:51 | 显示全部楼层
本帖最后由 kingpage 于 2016-2-26 00:35 编辑
xkwy 发表于 2016-2-25 16:13
你没看懂这个图:

原来这个tWWDG时间是从T[6:0]到达0X40的时间,而到达W[6:0]的一般不是用时间来判断,而是用T[6:0]当前的值是否比W[6:0]来判断,之前一直理解为T[6:0]到达W[6:0]也用时间来判断了,一时钻了牛角尖了,现在搞明白了,感谢、感谢。
回复

使用道具 举报

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
119
金钱
119
注册时间
2015-8-18
在线时间
17 小时
 楼主| 发表于 2016-2-26 00:09:58 | 显示全部楼层
本帖最后由 kingpage 于 2016-2-26 00:32 编辑

看到二楼的回复已经明白了,但同样谢谢你的回复。
回复

使用道具 举报

9

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-3-31
在线时间
46 小时
发表于 2017-7-9 11:36:14 | 显示全部楼层
kingpage 发表于 2016-2-25 23:57
原来这个tWWDG时间是从T[6:0]到达0X40的时间,而到达W[6:0]的一般不是用时间来判断,而是用T[6:0]当前的 ...

楼主,从T[6:0]->W[6:0],程序内部是比对的值,但是我们在喂狗的时候,不还是要自己考虑T[6:0]->W[6:0]之间的时间么,而且,总时间可以计算,通过比例,我们也可以计算出这个时间啊,只是公式改一下就好了!!!
回复

使用道具 举报

6

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2017-9-20
在线时间
27 小时
发表于 2017-10-5 19:47:43 | 显示全部楼层
请问下,计数器值为:0X7F,窗口值为:0X5F,分频数是8,即:WWDG_Init(0X7F,0X5F,3),计算出来的Twwdg=4096X2^8X128/36000=3.7S  怎么在程序里面灯闪得那么快呢,估计都没有0.5s的间隔
回复

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2017-6-14
在线时间
23 小时
发表于 2017-10-18 20:20:21 | 显示全部楼层
924583269 发表于 2017-10-5 19:47
请问下,计数器值为:0X7F,窗口值为:0X5F,分频数是8,即:WWDG_Init(0X7F,0X5F,3),计算出来的Twwdg=4096X2^8X ...

这里应该不是2的8次方,是2的3次方
回复

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2017-6-14
在线时间
23 小时
发表于 2017-10-18 20:29:19 | 显示全部楼层
924583269 发表于 2017-10-5 19:47
请问下,计数器值为:0X7F,窗口值为:0X5F,分频数是8,即:WWDG_Init(0X7F,0X5F,3),计算出来的Twwdg=4096X2^8X ...

并且这里好像不是乘128,好像是64,因为T【5:0】只有6位
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2021-11-27
在线时间
8 小时
发表于 2021-12-22 21:40:55 | 显示全部楼层
感谢,懂了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2021-11-27
在线时间
8 小时
发表于 2021-12-22 21:43:31 | 显示全部楼层
潮汐静如常 发表于 2017-10-18 20:29
并且这里好像不是乘128,好像是64,因为T【5:0】只有6位

感谢解答,我好粗心啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 01:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表