第四章 MSP430F149看门狗定时器

  • 格式:pdf
  • 大小:140.83 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序如下:
#include <msp430x14x.h> void main(void) {
WDTCTL=WDT_ADLY_250;//250ms 定时 //WDT_ADLY_250=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0
P6DIR |=BIT0;//P6.0 输出 P6OUT |=BIT0;//P6.0 输出高电平关闭 LED 灯 IE1 |=WDTIE;//允许 WDT 中断 _EINT();//开放系统中断 while(1) {
其中(WDTCTL & 0x00FF)是用来获取看门狗配置,目的是:不改变原有看门
狗配置的情况下将 WDTCNTCL 置 1,使 WDTCNT(计数器)清零。
二、定时器模式 当设置 WDTCTL 中的 WDTTMSEL 控制位为 1 选择定时器模式。在 WDTIE=1 且系 统中断开放时,看门狗定时器将产生周期性中断。 修改看门狗定时间隔 WDTISx 时必须同时将 WDTCNTCL 置位,否则将产生不可预 料的系统立即复位或中断。 改变看门狗时钟源时前,应先停止看门狗以避免可能的错误的定时间隔。 将看门狗定时器配置成间隔定时器的操作步骤: 1、初始化 WDTCTL:选择定时模式、时钟源、计数器清零、定时间隔
一、看门狗模式
系统上电复位或上电清零后,看门狗定时器自动配置成 32ms 间隔看门狗模式(系
统复位后 LFXT1CLK=32768Hz,SMCLK=DCOCLK=1MHz)。
配置看门狗模式的操作步骤:
1、选择相应时钟源和合适的定时间隔:初始化 WDTCTL。
WDTCTL=WDTPW+WDTCNTCL+WDTCTL.2+WDTISx;
二、MSP430F149 单片机看门狗定时器寄存器
寄存器
寄存器名 类型
初始状态
看门狗定时器控制寄存器
WDTCTL 读/写 0x6900(PUC)
中断使能寄存器 1
IE1
读/写
复位(PUC)
中断标志寄存器 1
IFG1
读/写
复位(PUC)
说明:IFG1.0(WDTIFG)被 POR 复位
1、WDTCTL 看门狗定时器控制寄存器
IE1 寄存器其余位可能被其他模块使用。
例如: IE1 |=WDTIE;//开放看门狗定时器定时中断
3、IFG1 中断标志寄存器 1
7
6
5
4
3
2
1
0
NMIIFG
WDTIFG
rw-0
rw-0
NMIIFG:NMI 中断标志位。
NMIIFG=0,无 NMI 中断发生
NMIIFG=1,有 NMI 中断发生
入,读出始终为 0x69。如果写入不是 0x5A 将导致系统复位。
WDTHOLD:看门狗保持控制位。 WDTHOLD=0,激活看门狗 WDTHOLD=1,停止看门狗
WDTNMIES:NMI 中断触发沿选择控制位。当 WDTNMI=1 时,引脚 RST /NMI 具有 NMI 中断功能。修改 WDTNMIES 位会触发一个 NMI 中断。为避免意外 NMI 中断,修 改 WDTNMIES 位时应使 WDTNMI=0。
_BIS_SR(LPM0_bits);//进入低功耗 0(禁止 CPU) } } #pragma vector=WDT_VECTOR __interrupt void WDT_ISR(void) { P6OUT ^=BIT0;//P6.0 取反 }
应用二、利用看门狗定时功能产生周期 250ms 的方波,从 P6.0 输出,LED 灯闪烁。
第四章 MSP430F149 单片机看门狗定时器 本章主要内容:
一、MSP430F149 单片机看门狗定时器相关寄存器 二、MSP430F149 单片机看门狗定时器的操作
本章重点内容
MSP430F149 单片机看门狗定时器的操作
§4.1 MSP430F149 单片机看门狗定时器寄存器
一、看门狗定时器的作用和特点
250ms 定时:
WDTCTL=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0;
16ms 定时:
WDTCTL=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1;
1.95ms 定时:
WDTCTL=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0;
例:设置看门狗间隔定时器模式,选择 ACLK(32768Hz)时钟源,定时 1s。
WDTCTL=WDTPW + WDTTMSEL + WDTCNTCL + WDTSSEL;
口令
定时工作模式 清除计数器
选择 ACLK
思考:
选择 ACLK(32786Hz)时钟源,定时 250ms/16ms/1.95ms,如何设置 WDTCTL?
MSP430 单片机看门狗定时器的主要功能是当发生软件错误时执行系统复位。在不
用看门狗功能时,可将看门狗定时器配置成间隔定时器,在定时时间到时产生中断。
系统上电后,看门狗定时器被激活,并自动选择 DCOCLK 时钟源配置成 32ms 定时
间隔看门狗模式。MSP430F149 单片机看门狗定时器结构如图 4-1 所示。
WDTIFG:看门狗定时器中断标志,定时模式执行中断后自动清除,看门狗模式
需通过软件清除。
WDTIFG=0,无看门狗中断发生
WDTIFG=1,有看门狗中断发生
IFG1 寄存器其余位可能被其他模块使用。
图 4-1 MSP430F149 看门狗定时器结构
§4.2 MSP430F149 单片机看门狗定时器应用
程序如下:
#include <msp430x14x.h> void main(void) {
WDTCTL=WDT_ADLY_1000;//1000ms 定时 //WDT_ADLY_1000=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL
P6DIR |=BIT0;//P6.0 输出 P6OUT |=BIT0;//P6.0 输出高电平关闭 LED 灯 IE1 |=WDTIE;//允许 WDT 中断 _EINT();//开放系统中断 while(1) {
15 ~ 8 WDTPW
7 WDTHOLD
6 WDTNMIES
5 WDTNMI
4
3
WDTTMSEL WDTCNTCL
2 WDTSSEL
1
0
WDTISx
rw-0
rw-0
rw-0
rw-0
r0(w)
rw-0
rw-0 rw-0
WDTPW:WDTCTL 控制寄存器的高 8 位,看门狗定时器的口令:必须以 0x5A 写
WDTISx=10,定时间隔 T×29 WDTISx=11,定时间隔 T×26
2、周期性喂狗:在程序适当位置重新初始化 WDTCTL,注意再次初始化 WDTCTL
的时间间隔必须小于看门狗定时间隔。喂狗方法如下:
WDTCTL=WDTPW+WDTCNTCL+WDTCTL.2+WDTISx;
或通用方法:
wk.baidu.comWDTCTL = WDTPW + WDTCNTCL + (WDTCTL & 0x00FF);
说明:
WDTPW——口令,固定格式。
WDTCNTCL——计数器清零
WDTCTL.2(WDTSSEL)——WDTCTL 第二位时钟源选择位,
0:选择 SMCLK
1:选择 ACLK
WDTISx——定时间隔选择控制位,T 为时钟源时钟周期。
WDTISx=00,定时间隔 T×215 WDTISx=01,定时间隔 T×213
WDTNMIES=0,上升沿触发 NMI 中断 WDTNMIES=1,下降沿触发 NMI 中断 WDTNMI:看门狗定时器 NMI 中断选择控制位。选择引脚 RST /NMI 的第二功能 NMI 中断功能。 WDTNMI=0,选择复位功能 WDTNMI=1,选择 NMI 中断功能 WDTTMSEL:看门狗定时器模式选择控制位。 WDTTMSEL=0,看门狗模式 WDTTMSEL=1,间隔定时器模式 WDTCNTCL:看门狗定时器计数器清零控制位。 WDTCNTCL=0,无操作 WDTCNTCL=1,计数器 WDTCNT 清零 WDTSSEL:看门狗定时器时钟源选择控制位。 WDTSSEL=0,选择 SMCLK 时钟信号为时钟源 WDTSSEL=1,选择 ACLK 时钟信号为时钟源 WDTISx:看门狗定时器定时间隔选择控制位,T 为时钟源时钟周期。 WDTISx=00,定时间隔 T×215 WDTISx=01,定时间隔 T×213 WDTISx=10,定时间隔 T×29 WDTISx=11,定时间隔 T×26
2、IE1 中断使能寄存器 1
7
6
5
4
3
2
1
0
NMIIE
WDTIE
rw-0
rw-0
NMIIE:非屏蔽中断允许控制位。
NMIIE=0,禁止 NMI 中断
NMIIE=1,允许 NMI 中断
WDTIE:定时器模式中断允许控制位。看门狗模式不需要设置该位。
WDTIE=0,禁止定时器中断
WDTIE=1,允许定时器中断
定时器最多只能产生 8 种定时间隔:2 种时钟源,每种各有 4 种定时间隔。 2、开放看门狗中断:IE1 |=WDTIE; 3、开放系统中断:_EINT(); 三、低功耗模式
当不用看门狗时,直接关闭看门狗,减小功耗。 WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
应用一、利用看门狗定时功能产生周期 1s 的方波,从 P6.0 输出,LED 灯闪烁。
_BIS_SR(LPM0_bits);//进入低功耗 0(禁止 CPU) } } #pragma vector=WDT_VECTOR __interrupt void WDT_ISR(void) { P6OUT ^=BIT0;//P6.0 取反 }
(1)SMCLK 时钟源 WDTCTL=WDTPW+WDTTMSEL+WDTCNTCL+WDTISx; 说明: WDTPW——口令,固定格式。 WDTTMSEL——选择定时模式 WDTCNTCL——计数器清零 WDTISx——定时间隔选择控制位,T 为时钟源时钟周期。 WDTISx=00,定时间隔 T×215 WDTISx=01,定时间隔 T×213 WDTISx=10,定时间隔 T×29 WDTISx=11,定时间隔 T×26