OpenEdv-开源电子网

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

关于窗口看门狗使用的疑问

[复制链接]

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2013-7-30
在线时间
0 小时
发表于 2013-8-22 22:46:41 | 显示全部楼层 |阅读模式

原子哥:

        我想问一下以下几个问题。

        1.关于窗口看门狗什么时候喂狗(我知道是在窗口内喂狗),但是我这里是指在代码中的哪一位置喂狗?我工程中程序代码比较多,并且在一些子函数中有不少(大约60处)毫秒级的延时,这时候怎么喂狗?

        2.我程序中有有关AM2321温湿度传感器的使用,这个传感器对时序要求比较高,其中时序的实现我用了一些延时,这时候加入窗口看门狗会不会影响时序?还有怎么加?我的想法是:如果实现10微妙的延时就用      for(i = 0;i < 10000;i++)
     {
       delay_us(1);
       WWDG_SetCounter(0x7F); 
     }   可是这样延时应该多于10毫秒,要是我想实现10毫秒延时该怎么办?

     恳请原子哥解答。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-22 22:59:10 | 显示全部楼层
1,看<<STM32开发指南>>V1.2.pdf第166页,图12.1.1. 至于你在代码什么位置,没有规定,窗口看门狗一般用中断自动喂狗,如果你要是在程序里面想喂狗,那就不停地判断窗口计数器值吧!!!
2,你还是用中断喂狗吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2013-7-30
在线时间
0 小时
 楼主| 发表于 2013-8-23 09:17:17 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥:
        中断喂狗的话,是不是只要配置好看门狗及中断就行了?请原子哥回答。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-25 23:29:57 | 显示全部楼层
参见我们的WWDG例程。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

37

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
268
金钱
268
注册时间
2012-1-25
在线时间
1 小时
发表于 2013-9-4 01:02:05 | 显示全部楼层
Hi,我的也是程序代码比较多,并且在一些子函数执行时间超过60毫秒级,用窗口看门狗好像很麻烦。但是用中断来喂窗口看门狗的话,是不是没有意义呢? 程序跑飞之后,窗口看门狗快要动作时,也是会飞进中断,然后喂狗的嘛。

谢谢。

回复【2楼】正点原子:
---------------------------------
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-4 11:30:00 | 显示全部楼层
回复【5楼】gz_ddc:
---------------------------------
着看你怎么飞了...
如果要钻牛角尖,任何看门狗都是无用的。
都可以找到漏洞,我程序就飞那一点点,其他不飞,尤其是喂狗那段,它就是不飞...
那不白搭....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

117

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-8-20
在线时间
0 小时
发表于 2013-9-4 13:45:14 | 显示全部楼层
学习了,用中断喂狗,用中断喂狗可以这么设计:
1.设置成差不多最低的中断优先级
2.检查核心数据的有效性,数据非正常就尽量让它跑飞
3.判断核心循环是否处理过(一个bool量即可)
4.最后全部正常以后,喂狗

一般程序跑飞来说,跑飞了,一种是卡在某点了(如循环读某设备,这设备正好异常了),一种是程序的数据异常或被破坏了
这是我做PC机的经验,单片机也应该类似,如有不对,请指正
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2013-7-30
在线时间
0 小时
 楼主| 发表于 2014-1-27 16:56:56 | 显示全部楼层
回复【7楼】lanny_cn:
---------------------------------
恩,谢谢你,学习了。
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-27 20:20:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 02:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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