社区导航

 

搜索
查看: 157|回复: 0

[资料分享] MSP430看门狗使用笔记&&低功耗模式下如何用看门狗监控程序跑飞

[复制链接]

4366

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2020-5-13 21:46 | 显示全部楼层 |阅读模式

一、看门狗简介

1、看门狗可用来当定时器计时,也可用来防止程序跑死。主要对应到两种工作模式,定时器模式和看门狗模式。

2、MSP430默认看门狗模式打开,因此一般在程序初始化前,会用到指令“WDTCTL = WDTPW + WDTHOLD”关闭看门狗模式,不然程序会一直超时重启。

3、如果想启用看门狗的定时器功能或看门狗超时复位功能,则需要对看门狗进行重新设置,以下将详细介绍。

二、定时器模式

1、设置成定时器模式时,超时溢出后,会进入看门狗中断函数。这样就可以当定时器用了。

2、注意当设置成定时器模式,计时溢出后,只进入看门狗中断函数,不会软重启MCU。溢出后自动重新计时。

3、设置成定时器模式,可以根据选择的时钟源和分频参数,进行不同时间参数的定时(测试过可以进行1s、8s、60s等参数的定时)。

4、由于看门狗定时器模式定时的时间和选择的时钟源和分频有关,所以只能进行一些典型参数的定时,跟普通的定时器有区别。

三、看门狗模式

1、设置成看门狗模式后,超时溢出后,就不会进入所谓程序里面的看门狗中断函数里,所以要在溢出前用指令进行喂狗,才能不会误复位。

2、喂狗其实就是对WDTCTL重新配置,也可切成关闭或定时器模式。对比上图中对定时器模式和看门狗模式的接口设置,可以看出区别就是定时器模式多了WDTTMSEL。

3、看门狗模式可以设置的超时时间其实与定时器模式差不多,可以参考定时器模式的时钟源和分频参数,进行超时时间设置(比如1s、8s、60s等都可以)。

四、低功耗模式 && 看门狗模式

1、一般设备都需要设置成低功耗待机模式,同时又想开启看门狗防止程序跑死,在这种情况下,就需要注意以下的几点了。

2、低功耗模式不能选择LPM4模式,最理想的方案是推荐选择LPM3模式,因为LPM4模式中时钟源SMCLK和ACLK都是关闭的。

3、待机时如果是进入了LPM3模式,而且程序一开始就设置成了看门狗模式,由于程序执行“__bis_SR_register(LPM3_bits | GIE)”指令后,就会一直循环在这,不会跳到喂狗指令,因此结果就会导致超时重启,这种现象是有方法避免的,方法有两种,详见下文。

4、方法一,可以一开始把看门狗设置成定时器模式,超时溢出进入看门狗中断时退出低功耗模式;在主循环程序一开始设置成看门狗模式,在进入LPM3之前设置成定时器模式。

5、方法二,可以开始一个定时器用于喂狗,但是考虑到低功耗和资源的节约利用,推荐使用第一种方法,即可实现低功耗模式和看门狗模式的冲突问题。


回复

使用道具 举报

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

关闭

站长推荐上一条 1/8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

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

GMT+8, 2020-7-15 19:47 , Processed in 0.088851 second(s), 21 queries , Gzip On, MemCache On.

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