社区导航

 
查看: 997|回复: 8

[求助] 看门狗怎么加??

[复制链接]

45

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-26 20:56:50 | 显示全部楼层 |阅读模式
请教各位了,现在写了一个程序,内容有串口通讯和定时器等功能,用外接8M晶振,现在需要加入看门狗提高可靠性,但8M晶振导致定时时间很短,不知道该如何加看门狗,谢谢各位了

回复

使用道具 举报

1万

TA的帖子

34

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-4-26 21:48:30 | 显示全部楼层
有个Watchdog Timer,它可以设置分频。可根据 “ 喂狗 ” 的时间来设置。

只要在它引起复位前复位Watchdog Timer就可以了。

回复 支持 反对

使用道具 举报

6071

TA的帖子

4957

TA的资源

至上芯片

Rank: 13Rank: 13Rank: 13Rank: 13

资源大师勋章

发表于 2015-4-26 23:09:47 | 显示全部楼层
计算一下你的程序中,哪些部分需要运行的时间最长,然后根据这个时间设置看门狗的复位时间,

回复 支持 反对

使用道具 举报

1071

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-4-26 23:57:52 | 显示全部楼层
从你的提问“8M晶振导致定时时间很短”看来, 我只好猜测你想说的是允许喂狗的时间很短,程序执行的内容比较复杂,来不及喂狗。



刚刚看了一下看门狗定时器的设置,貌似确实不能设置分频系数,但是它是允许选择不同时钟源的。



你可以选择低速的ACLK(LFXT或者VLO)作为看门狗的时钟源,那么你将有充裕的时钟周期去喂狗,同时实现软件的安全性设计。

点评

目前即使用32K也就一秒的时间喂狗,问题是很多软件运行会大于1s,是否可以用具体的例子说明下呢?  详情 回复 发表于 2015-5-4 22:20

回复 支持 反对

使用道具 举报

2956

TA的帖子

0

TA的资源

裸片初长成(初级)

Rank: 10Rank: 10Rank: 10

发表于 2015-4-27 07:48:25 | 显示全部楼层
看门狗和时钟晶振的频率关系应该不大,通常在主循环里喂狗即可。
喂狗周期短不要紧,只要不超过看门狗内定时器的周期就行了。

回复 支持 反对

使用道具 举报

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-4-30 15:51:02 | 显示全部楼层
不知道楼主用的哪款单片机,MSP430F149 可以选择看门狗定时器时钟来源SMCLK,最长定时时间32ms;如果这个时间不够,那么可以选择增加一个低频晶振XT1,又或者把主程序切小时间片,状态机轮转,减少主程序运转一次的时间。

回复 支持 反对

使用道具 举报

3319

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2015-5-4 22:20:39 | 显示全部楼层
qiushenghua 发表于 2015-4-26 23:57
从你的提问“8M晶振导致定时时间很短”看来, 我只好猜测你想说的是允许喂狗的时间很短,程序执行的内容比较复杂,来不及喂狗。



刚刚看了一下看门狗定时器的设置,貌似确实不能设置分频系数,但是它是允许选择不同时钟源的。



你可以选择低速的ACLK(LFXT或者VLO)作为看门狗的时钟源,那么你将有充裕的时钟周期去喂狗,同时实现软件的安全性设计。

目前即使用32K也就一秒的时间喂狗,问题是很多软件运行会大于1s,是否可以用具体的例子说明下呢?

点评

谁限制了你在一个软件运行的时候只能喂一次狗? 可以在程序运行的多个位置加入喂狗语句。 只要喂狗的间隔足够短就行了。 如果是不允许打断的操作,可以设定看门狗中断,在中断里喂狗(貌似失去看门狗的意义  详情 回复 发表于 2015-5-4 22:57
个人淘宝店:https://viiot.taobao.com/Q群243090717
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品

回复 支持 反对

使用道具 举报

1071

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-5-4 22:57:43 | 显示全部楼层
wateras1 发表于 2015-5-4 22:20
目前即使用32K也就一秒的时间喂狗,问题是很多软件运行会大于1s,是否可以用具体的例子说明下呢?

谁限制了你在一个软件运行的时候只能喂一次狗?

可以在程序运行的多个位置加入喂狗语句。

只要喂狗的间隔足够短就行了。

如果是不允许打断的操作,可以设定看门狗中断,在中断里喂狗(貌似失去看门狗的意义了)。


点评

是否可以贴个代码讲解下呢?对MSP430不熟,最近也困惑在MSP430看门狗模式方面。  详情 回复 发表于 2015-5-5 21:55

回复 支持 反对

使用道具 举报

3319

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2015-5-5 21:55:39 | 显示全部楼层
qiushenghua 发表于 2015-5-4 22:57
谁限制了你在一个软件运行的时候只能喂一次狗?

可以在程序运行的多个位置加入喂狗语句。

只要喂狗的间隔足够短就行了。

如果是不允许打断的操作,可以设定看门狗中断,在中断里喂狗(貌似失去看门狗的意义了)。

是否可以贴个代码讲解下呢?对MSP430不熟,最近也困惑在MSP430看门狗模式方面。
个人淘宝店:https://viiot.taobao.com/Q群243090717
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品

回复 支持 反对

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-6-24 11:42 , Processed in 0.353119 second(s), 22 queries , Redis On.

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