当前位置:文档之家› 看门狗定时器课件教学文案

看门狗定时器课件教学文案


#define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)
#define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)
寄存器宏定义
#define __MSP430_HAS_WDT__
SFR_16BIT(WDTCTL);
#define WDTIS0
(0x0001)
#define WDTIS1
(0x0002)
#define WDTSSEL
(0x0004)
#define WDTCNTCL
(0x0008)
#define WDTTMSEL
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
IS0
定时时间 / ms
1
0.056 Tsmclk * 26
0
0.5 Tsmclk * 29
1
1.9 Taclk * 26
1
8 Tsmclk * 213
0
16 Taclk * 29
0
32 Tsmclk * 215
1
250 Taclk * 213
0
1000 Taclk * 215
看门狗定时器课件
看门狗定时器
MSP430X5XX / 6XX系列单片机的看门狗定时器原理, 如下图所示:
WDT 的相关寄存器
一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在 上电和系统复位内容全部清零 ,就是说MSP430的看门狗 在此时处于默认开启的状态。
• 1. 记数单元WDTCNT: WDTCNT是16位增记数器,由MSP430选定的时钟电
(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)
#define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)
#define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)
#define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)
计数次数为 32 768; 计数次数为 8 192; 计数次数为 512; 计数次数为 64 。
SSEL 选择WDTCNT的时钟源 1 RST/NMI为非屏 蔽中断输入
0 SMCLK 1 ACLK
WDT的定时 时间表(有且仅有这8 种)
晶体为32 768Hz,SMCLK=1MHz。
SSEL
IS1
0
bit
15-8
7Байду номын сангаас
65
4
3
21
0
相关内容 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
CNTCL 当该位为 1 时,表示清除WDTCNT ,该位具有自动复0的功能, 无需软件重置。亦即传说 中的定时“喂狗”!
注意: WDT 计数器中的值无法直接清除,只能通过CNTCL 置1实现!
TMSEL 工作模式的选择 0 :看门狗模式; 1 :定时器模式。
bit
15-8
7
65
4
3
21
0
相关内容 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
NMI 选择RET / NMI 引脚功能,在PUC后被复位。 0 : RET / NMI 引脚为复位端; 1 : RET / NMI 引脚为边沿触发的非屏蔽中断输入。
3. 在使用后两种模式时候要注意单片机所处的状态下看门 狗能否工作,如单片机处在LPM3时候只有ACLK时钟, 处在LPM4下,没有时钟可以使用。
停止模式:关闭看门狗 C语言实现:WDTCTL = WDTPW + WDTHOLD;
我们用得最多的语句,也是430低功耗的实现语句之一!
计时器模式:作为一个计时器使用,计数器满产生中断时 执行看门狗中断函数。
C语言实现: 主程序中:开启看门狗计时器,如: WDTCTL = WDT_MDLY_8; 或 WDTCTL = WDT_ADLY_250; 等 看门狗中断函数为: #pragma vector = WDT_VECTOR __interrupt void watchdog_timer(void) {
//................... }
看门狗模式:计数溢出时,执行复位中断函数。 C语言实现: 清看门狗: WDTCTL = WDTPW+WDTCNCTL;
设置看门狗: WDTCTL = WDT_MRST_0_5; /* TSMCLK*2POWER9=0.512ms */
或 WDTCTL = WDT_ARST_1000; /* TACLK*2POWER15=1000ms */
路产生的固定周期脉冲信号对记数器进行加法记数。 WDTCNT不能直接软件存取,必须通过看门狗定时器 的控制寄存器WDTCTL来控制。
• 2. 控制寄存器WDTCTL: WDTCTL由两部分组成,高8位用作口令,即5AH(头
文件中定义为WDTPW),低8位是对WDT操作 的控制 命令。写入WDT控制命令时先写入口令WDTPW,口 令写错将导致系统复位。读WDTCTL时不需口令,低 字节WDTCTL的 值,高字节读出始终为69H。
(0x0010)
#define WDTNMI
(0x0020)
#define WDTNMIES
(0x0040)
#define WDTHOLD
(0x0080)
#define WDTPW
(0x5A00)
#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL)
#define WDT_MDLY_8
bit 15-8
7
6
5
4
3
2
1
0
相关内 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0

IS1 SI0 选择看门狗定时器的定时输出,T为WDTCNT的 输入时钟源 周期。TMSEL WDT工作模式选择
00 01 10 11
T*2的15次方 T*2的13次方 T*2的9次方 T*2的6次方
NMIES 选择NMI中断的边沿触发方式 0 上升沿触发NMI中断 1 下降沿触发NMI中断
HOLD 停止看门狗定时器工作 0 看门狗功能激活 1 时钟禁止输入,记数停止
看门狗的三种工作模式
1. 看门狗有 三种工作模式:停止模式,计时器模式,看 门狗模式。
2. 其中后两种模式可以选择的时钟源有: SMCLK 和 ACLK
相关主题