博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MSP430看门狗使用笔记&&低功耗模式下如何用看门狗监控程序跑飞
阅读量:5227 次
发布时间:2019-06-14

本文共 1191 字,大约阅读时间需要 3 分钟。

一、看门狗简介

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

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

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

二、定时器模式

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

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

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

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

上图是库中列出的一些可以直接调用的接口,只定义了几种时间参数接口。其实可以自己对WDTCTL进行配置,得出其他的超时溢出参数,具体可以参照例程修改测试。

三、看门狗模式

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

 

转载于:https://www.cnblogs.com/crepse/p/9579678.html

你可能感兴趣的文章
Win10+Ubuntu双系统删除Ubuntu方法
查看>>
Android : Your APK does not seem to be designed for tablets.
查看>>
获取全部校园新闻
查看>>
P2216 [HAOI2007]理想的正方形
查看>>
C# Split用法
查看>>
292. Nim 游戏
查看>>
275. H-Index II
查看>>
ettercap局域网内DNS欺骗
查看>>
GDKOI2016总结——被虐之旅
查看>>
二叉树
查看>>
Context.managedQuery()和context.getContentResolver()获取Cursor关闭注意事项
查看>>
C# socket编程 使用fleck轻松实现对话 https://github.com/statianzo/Fleck
查看>>
C# 如何用计时器Timer控件实现停留几秒再做切换窗体的操作
查看>>
SQL Server日期函数总结
查看>>
python 虚拟环境
查看>>
JSON Web Token(JWT)使用步骤说明
查看>>
WebService之基于REST机制的实现实例(Java版)
查看>>
php实现设计模式之 迭代器模式
查看>>
解决document.location.href下载文件时中文乱码
查看>>
Linux下Nginx+Tomcat整合的安装与配置
查看>>