WDT of MSP430

合集下载

MSP430单片机中的WDT研究

MSP430单片机中的WDT研究

MSP430单片机中的WDT研究
章锐
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2006(000)001
【摘要】软件的可靠性一直是一个关键问题。

任何使用软件的人都可能会经历计算机死机或程序跑飞的问题,这种情况在嵌入式系统中也同样存在。

由于单片机的抗干扰能力有限,在工业现场的仪器仪表中,常会由于电压不稳、电弧干扰等造成死机。

在水表、电表等无人看守的情况下,也会因系统遭受干扰而无法重启。

为了保证系统在干扰后能自动恢复正常,看门狗定时器(Watchdog Timer)的利用是很有价值的。

【总页数】2页(P69-70)
【作者】章锐
【作者单位】上海电机学院
【正文语种】中文
【中图分类】TP3
【相关文献】
1.MSP430系列单片机简介及MSP430F449单片机在医疗器械中的应用 [J], 邱月友
2.MSP430单片机实用技术讲座第1讲MSP430单片机系列简介(上) [J], 张俊谟
3.MSP430单片机实用技术讲座第1讲 MSP430单片机系列简介(下) [J], 张俊谟
4.MSP430单片机在公交车门安全系统中的应用研究 [J], 周振
5.MSP430系列单片机及MSP430F449单片机在医疗仪器中的应用 [J], 邱月友因版权原因,仅展示原文概要,查看原文内容请购买。

Msp430定时器的介绍及其基本应用

Msp430定时器的介绍及其基本应用

Msp430定时器的介绍及其基本应用Msp430定时器的介绍及其基本应用Msp430单片机一共有5种类型的定时器。

看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bit Timer/Counter)、定时器A(Timer_A)和定时器B(Timer_B)。

但是这些模块不是所有msp430型号都具有的功能。

1、看门狗定时器(WDT)学过电子的人可能都知道,看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。

msp430中它是一个16位的定时器,有看门狗和定时器两种模式。

2、基本定时器(Basic Timer1)基本定时器是msp430x3xx和msp430F4xx系列器件中的模块,通常向其他外围提供低频控制信号。

它可以只两个8位定时器,也可以是一个16位定时器。

3、8位定时器/计数器(8-bit Timer/Counter)如其名字所示,它是8位的定时器,主要应用在支持串行通信或数据交换,脉冲计数或累加以及定时器使用。

4、16位定时器A和B定时器A在所有msp430系列单片机中都有,而定时器B在msp430f13x/14x和msp430f43x/44x等器件中出现,基本的结构和定时器A是相同的,由于本人最先熟悉并应用的是定时器A所以在这里就主要谈一下自己对定时器A的了解和应用。

定时器A是16位定时器,有4种工作模式,时钟源可选,一般都会有3个可配置输入端的比较/捕获寄存器,并且有8种输出模式。

通过8种输出模式很容易实现PWM波。

定时器A的硬件电路大致可分为2类功能模块:一:计数器TAR计数器TAR是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断TAIFG。

二:比较/捕获寄存器CCRX如何实现定时功能呢?这就要靠三个比较/捕获寄存器了(以后用CCRx表示)。

当计数器TAR的计数值等于CCRx时(这就是捕获/比较中的比较的意思:比较TAR是否等于CCRx),CCRx单元会产生一个中断。

016:MSP430_WDT看门狗定时器

016:MSP430_WDT看门狗定时器

016:MSP430_WDT看门狗定时器1, 看门狗定时器概述看门狗定时器(WDT)是 MSP430 系列单⽚机中常⽤的⼀种部件。

在⼯业现场,往往会由于供电电源、空间电磁⼲扰或其他原因引起强烈的⼲扰噪声。

这些⼲扰作⽤于数字器件,极易使其产⽣误动作,从⽽失去应有的控制功能,引起 MSP430 发⽣“程序跑飞”事故。

若不进⾏有效的处理,程序就不能回到正常的状态,从⽽失去应有的控制功能。

看门狗定时器正是为了解放这类问题⽽产⽣的,尤其是在具有循环结构的程序任务中更为有效。

在正常操作器件,⼀次 WDT 定时时间到,将产⽣⼀次器件复位。

如果通过编制程序使 WDT 定时时间稍⼤于程序执⾏⼀遍所⽤的时间时,并且程序执⾏过程中都有对看门狗定时器清零的指令,使计数器重新计数,则程序正常执⾏时,就会在 WDT 定时时间到达之前对 WDT 清零,不会产⽣ WDT 溢出,如果由于⼲扰使程序跑飞,则不会在 WDT 定时时间到达之前执⾏ WDT 清零指令,WDT 就会产⽣溢出,从⽽产⽣系统复位 CPU 需⽤重新运⾏⽤户程序,这样程序就可以⼜恢复正常运⾏状态。

MSP430 看门狗除了具有上述系统监测的特定⽤途之外,还可以作为内部定时器来使⽤,当选择的时间到达之后,和其他定时器⼀样产⽣⼀个定时中断。

此外 WDT 还可以被完全停⽌活动以⽀持超低功耗应⽤2 看门狗定时器结构3 看门狗定时器寄存器[1] WDTCTL 看门狗控制寄存器WDTCTL 由两部分组成:⾼ 8 位是对 WDT 操作的控制命令。

要写⼊操作 WDT 的控制命令,出于安全原因必须先正确写⼊⾼字节看门狗⼝令。

⼝令位 5AH,如果⼝令写错将导致系统复位。

读 WDTCTL 时,不需要⼝令,可直接读取地址 120H 中的内容,读出数据低字节位 WDTCTL 的值,⾼字节始终位 69H。

WDTCTL 除了看门狗定时器的控制位之外,还有两个⽤于设置 NMI 引脚功能。

WDTISx:选择看门狗定时器的计时输出其中 T 是 WDTCNT 的输⼊时钟源周期。

MSP430简介(超详细·)

MSP430简介(超详细·)

msp430简介MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化, MSP430系列将会得到越来越多人的喜爱.一、IO口(一)、P口端口寄存器:1、PxDIR 输入/输出方向寄存器(0:输入模式 1:输出模式)2、PxIN 输入寄存器输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。

3、PxOUT 输出寄存器寄存器内的内容不会受引脚方向改变的影响。

4、PxIFG 中断标志寄存器(0:没有中断请求 1:有中断请求)该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受;5、PxIES 中断触发沿选择寄存器(0:上升沿中断 1:下降沿中断)6、PxSEL 功能选择寄存器(0:选择引脚为I/O端口 1:选择引脚为外围模块功能)7、PxREN 上拉/下拉电阻使能寄存器(0:禁止 1:使能)(二)、常用特殊P口:1、P1和P2口可作为外部中断口。

MSP430简介(超详细·)

MSP430简介(超详细·)

msp430简介MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化, MSP430系列将会得到越来越多人的喜爱.一、IO口(一)、P口端口寄存器:1、PxDIR 输入/输出方向寄存器(0:输入模式 1:输出模式)2、PxIN 输入寄存器输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。

3、PxOUT 输出寄存器寄存器内的内容不会受引脚方向改变的影响。

4、PxIFG 中断标志寄存器(0:没有中断请求 1:有中断请求)该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受;5、PxIES 中断触发沿选择寄存器(0:上升沿中断 1:下降沿中断)6、PxSEL 功能选择寄存器(0:选择引脚为I/O端口 1:选择引脚为外围模块功能)7、PxREN 上拉/下拉电阻使能寄存器(0:禁止 1:使能)(二)、常用特殊P口:1、P1和P2口可作为外部中断口。

MSP430单片机整体介绍

MSP430单片机整体介绍

MSP430单片机整体介绍MSP4301.摘要MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗的混合信号处理器(Mixed Signal Processor)。

称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。

2.MSP430 单片机的发展MSP430 系列是一个16 位的、具有精简指令集的、超低功耗的混合型单片机,在1996 年问世,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一颗耀眼的新星。

回忆MSP430系列单片机的发展过程,可以看出有这样三个阶段:开始阶段:从1996 年推出MSP430 系列开始到2000 年初,这个阶段首先推出有33X 、32X 、31X 等几个系列,而后于2000 年初又推出了11X 、11X1 系列。

MSP430 的33X 、32X 、31X 等系列具有LCD 驱动模块,对提高系统的集成度较有利。

每一系列有ROM 型( C )、OTP 型(P )、和EPROM 型(E )等芯片。

EPROM 型的价格昂贵,运行环境温度范围窄,主要用于样机开发。

这也表明了这几个系列的开发模式,即:用户可以用EPROM 型开发样机;用OTP 型进行小批量生产;而ROM 型适应大批量生产的产品。

2000 年推出了11X/11X1 系列。

这个系列采用20 脚封装,内存容量、片上功能和I/O 引脚数比较少,但是价格比较低廉。

这个时期的MSP430已经显露出了它的特低功耗等的一系列技术特点,但也有不尽如人意之处。

它的许多重要特性,如:片内串行通信接口、硬件乘法器、足够的I/O引脚等,只有33X 系列才具备。

33X 系列价格较高,比较适合于较为复杂的应用系统。

当用户设计需要更多考虑成本时,33X并不一定是最适合的。

而片内高精度A/D 转换器又只有32X 系列才有。

MSP430学习点滴——看门狗定时器

MSP430学习点滴——看门狗定时器

MSP430学习点滴——看门狗定时器看门狗有三种工作模式:停止模式,计时器模式,看门狗模式。

控制寄存器WDTCTL 由两部分组成,高8 位用作口令,低8 位实现对WDT 的控制操作。

要实现对WDT 的操作控制,必须先写入高字节看门狗口令。

口令为5AH,头文件里一般将WDTPW 宏定义为5AH.WDTCTL 寄存器各位定义如下:15~8 7 6 5 4 3 2 1 0 口令HOLD NMIES NMI TMSEL CNTCL SSEL IS1 IS0IS0 IS1 选择看门狗定时器的定时输出,其中T 是WDTCNT 的输入时钟源周期。

一般宏定义WDTIS0 为0x0001,WDTIS1 为0x0002. 0 T*2(PUC 复位后的值)1 T*22 T*23 T*2SSEL选择WDTCNT 的时钟源。

一般宏定义WDTISSEL 为0x0004. 0 SMCLK (PUC 复位后的值) 1 ACLKCNTCL 当该位为1 时清除WDTCTL。

一般宏定义WDTCNTL 为0x0008.TMSEL 工作模式的选择。

一般宏定义WDTTMSEL 为0x0010. 0 看门狗模式(默认) 1 定时器模式NMI选择RST/NMI 引脚功能,在PUC 后被复位。

一般宏定义WDTNMI 为0x0020.0 RST/NMI 引脚为复位端 1 RST/NMI 引脚为边沿触发的非屏蔽中断输入。

NMIES 选择中断的边沿触发方式。

一般宏定义WDTNMIES 为0x0040. 0 上升沿触发NMI 中断1 下降沿触发NMI 中断HOLD 停止看门狗定时器工作降低功耗。

一般宏定义WDTHOLD 为0x0080. 0 WDT 功能激活1 时钟禁止输入,计数停止。

因此,可以根据WDTCTL 寄存器的TMSEL 和HOLD 控制位设置WDT 工作在看门狗模式、定时器模式和低功耗模式。

C 语言实现低功耗模式的语句:WDTCTL = WDTPW + WDTHOLD;C 语言实现定时器模式的语句:WDTCTL =WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0;C 语言实现看门狗模式的语句:设置看门狗:WDTCTL = WDT_MRST_0_5。

MSP430程序指南

MSP430程序指南

MSP4301.时钟控制:430三个时钟源:LFXT1CLK低频时钟源,XT2CLK,高频时钟源,DCOCLK数控RC 振荡器。

2.三种时钟源可提供三种时钟信号:1.ACLK辅助时钟:ACLK是LFXT1CLK信号经过1、2、4、8分频得到的。

ACLK可由软件选作外围器件的时钟信号。

2.MCLK系统主时钟:可由软件来设置来源于低频时钟源,高频,数控。

之后可再经过1、2、4、8分频得到。

MCLK主要用于CPU和系统。

3.SMCLK:可有软件选这高频时钟来源,用于高速外围设备。

其中P1.4/SMCLK, P2.0/ACLK, P5.5/SMCLK, P5.6/ACLK。

时钟信号输出,可由PnSEL|=0xXX,l来设置特殊功能端口。

4.三个振荡器的控制位:1.低频LFXT1:OscOff;2.高频XT2CLK:XT2OFF;3.DCO:SCG0;5.一、时钟模块主要由三个寄存器来进行控制。

1.DCOCTL DCO控制器高三位:DCO.2、DCO.1 DCO.0定义8种频率之一,相邻两位相差10%,第五位详细调整频率。

其中DCO为7时表示选择最高频率。

2.BCSCTL1基本时钟控制器1位数7(最高)---XT2OFF:控制XT2的开启与关闭,0:开启;1:关闭。

6---------XTS:控制LFXT1工作模式:0:低频工作模式32768HZ;1:高频工作模式(前提接了相应的高频晶振)。

5,4--------DIV.1、DIV.0:控制ACLK分频(ACLK时钟来源于LFXT1)0:不分;1: 2分;2: 4分;3:8分;3-------XT5V:此位设置为0;2,1,0-----Rsel.0~Rsel.2 :0~7:最低标频~最高标频。

3.BCSCTL27,6-------SELM.1,SELM.0:选择MCLK时钟源(系统主时钟)0,1:DCOCLK为时钟源2:XT2CLK为时钟源3:时钟源为LFXT1CLK5,4-------DIVM.0,DIVM.1 选择MCLK分频。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

看门狗的三种工作模式(4/4) 看门狗模式:计数溢出时,执行复位中断函数。 C语言实现: 清看门狗: WDTCTL = WDTPW+WDTCNCTL;
设置看门狗: WDTCTL = WDT_MRST_0_5; /* TSMCLK*2POWER9=0.512ms */ 或 WDTCTL = WDT_ARST_1000; /* TACLK*2POWER15=1000ms */ 寄存器宏定义
看门狗的三种工作模式(3/4)
停止模式:关闭看门狗 C语言实现:WDTCTL = WDTPW + WDTHOLD; 我们用得最多的语句,也是430低功耗的实现 语句之一! 计时器模式:作为一个计时器使用,计数器满产生中断时 执行看门狗中断函数。 C语言实现: 主程序中:开启看门狗计时器,如: WDTCTL = WDT_MDLY_8; 或 WDTCTL = WDT_ADLY_250; 等 看门狗中断函数为: #pragma vector = WDT_VECTOR __interrupt void watchdog_timer(void) { //................... }
• 在工业现场,往往会由于供电电源、空间电磁干扰或其 他原因引起强烈的干扰信号噪声。这些干扰信号作用于 数字器件,极易引发错误动作,引起“程序跑飞”事故!
• 看门狗的目的在于阻止程序跑飞。在正常操作期间,一 次WDT定时时间到,将产生一次器件复位。
看门狗定时器的原理(2/2) • 如杲通过编制程序使WDT定时时间略微大于程 序执行一次的时间,并且程序执行过程中有对 看门狗定时器清零的指令,使计数器重新计数, 则程序正常运行时,就会在WDT定时时间到之 前对WDT清零(定时喂狗),不会产生WDT 溢出。 • 如果由于干扰使程序跑飞,则不会在WDT定时 时间到之前执行WDT清零指令,则WDT就会产 生溢出,从而自动产生系统复位,CPU需要重 新运行用户程序,这样程序就可以重新回到正 常运行状态!
1 : RET / NMI 引脚为边沿触发的非屏蔽中断输入。
NMIES 选择NMI中断的边沿触发方式 0 上升沿触发NMI中断 1 下降沿触发NMI中断 HOLD 停止看门狗定时器工作 0 看门狗功能激活 1 时钟禁止输入,记数停止
看门狗的三种工作模式(1/4)
• 以MSP430F2274为例。其中汇编实现采用的是IAR汇编。 1. 看门狗有 三种工作模式:停止模式,计时器模式,看 门狗模式。
TMSEL 工作模式的选择 0 :看门狗模式; 1 :定时器模式。
WDT 的相关寄存器(5/5)
bit
相关内容
15-8
口令
7
HOL
4
TMSEL
3
CNTCL
2
SSEL
1
IS1
0
IS0
NMI
选择RET / NMI 引脚功能,在PUC后被复位。 0 : RET / NMI 引脚为复位端;
相关C程序(1.用看门狗定时器产生一方波)
# include <msp430x14x.h> void main(void) { WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR |= 0x01; _EINT(); for (;;) { _BIS_SR(CPUOFF); _NOP(); } } // 看门狗中断服务子程序 #pragma vector= WDT_VECTOR __interrupt void watchdog_timer (void) { P1OUT ^= 0x01; }
MSP430X1/4XX系列单片机的看门狗定时器 • 看门狗定时器材的结构如下图:
其他型号的芯片 在此处有所不同
WDT 的相关寄存器(1/5)
一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在 上电和系统复位内容全部清零 ,就是说MSP430的看门狗 在此时处于默认开启的状态。 • 1. 记数单元WDTCNT: WDTCNT是16位增记数器,由MSP430选定的时钟电 路产生的固定周期脉冲信号对记数器进行加法记数。 WDTCNT不能直接软件存取,必须通过看门狗定时器 的控制寄存器WDTCTL来控制。 • 2. 控制寄存器WDTCTL: WDTCTL由两部分组成,高8位用作口令,即5AH(头 文件中定义为WDTPW),低8位是对WDT操作 的控制 命令。写入WDT控制命令时先写入口令WDTPW,口 令写错将导致系统复位。读WDTCTL时不需口令,低 字节WDTCTL的 值,高字节读出始终为69H。
5. 在MSP430F2274中,看门狗模式下可以计时最长 为1s,若需要以更长的时间复位,可采取的方法,使用其 他计数器,计数满后执行((void(*)())RESET_VECTOR)() ; 或计数满后往看门狗控制寄存器写个错误值或执行一条无 效命令:如((void (*)())0x170)();0x170是外围模块的一个 地址,不可能是一个函数地址,所以执行此句将使程序复 位。
WDT 的相关寄存器(4/5)
bit
相关内容
15-8
口令
7
HOLD
6
NMIES
5
NMI
4
TMSEL
3
CNTCL
2
SSEL
1
IS1
0
IS0
CNTCL 当该位为 1 时,表示清除WDTCNT ,该位具有自动复0的功能, 无需软件重置。亦即传说 中的定时“喂狗”!
喂狗语句 (这个我没找到)??
注意: WDT 计数器中的值无法直接清除,只能通过CNTCL 置1实现!
计数次数为 32 768; 计数次数为 8 192; 计数次数为 512; 计数次数为 64 。
1 RST/NMI为非屏 蔽
SSEL 选择WDTCNT的时钟源 中断输入 0 1 SMCLK ACLK
WDT 的相关寄存器(3/5)
WDT的定时 时间表(有且仅有这8 种) 晶体为32 768Hz,SMCLK=1MHz。
2. 其中后两种模式可以选择的时钟源有: SMCLK 和 ACLK
3. 在使用后两种模式时候要注意单片机所处的状态下看门 狗能否工作,如单片机处在LPM3时候只有ACLK时钟,处 在LPM4下,没有时钟可以使用。
看门狗的三种工作模式(2/4)
4. 看门狗模式的使用方法:当看门狗计数溢出时,程 序复位。 在程序中开启看门狗,在计数溢出前清空看门 狗,或重置看门狗,以使其重新计数。若程序跑飞,看门 狗可能没有被清空或重置,就会溢,使程序复位。
为了调试程 序,总是先 关掉WDT, 以免影响程 序的调试, 其实WDT有 看门狗和定 时器功能 WDT看门狗 模式 运行后, LED闪烁, 但看门狗启 动使程序复 位,从而看 到LED不停 闪烁
谢谢大家!
WDT 的相关寄存器(2/5)
bit
相关内 容
15-8
口令
7
HOLD
6
NMIES
5
NMI
4
TMSEL
3
CNTCL
2
SSEL
1
IS1
0
IS0
IS1 SI0 选择看门狗定时器的定时输出,T为WDTCNT的 输入时钟源 周期。TMSEL WDT工作模式选择
0 0 1 1
0 1 0 1
T*2的15次方 T*2的13次方 T*2的9次方 T*2的6次方
相关C程序(4.WDT_RESET)
#include<msp430x14x.h> void main( void ) { unsigned int i; WDTCTL=WDTPW+WDTHOLD; //关闭看门狗 P4DIR |=BIT0; P4OUT &=~BIT0; //暗 for(i=0;i<6000;i++); P4OUT |=BIT0; //亮 for(i=0;i<6000;i++); WDTCTL=WDTPW; //启动看门狗 while(1); }
看门狗
WDT
of MSP430
目录 • 看门狗定时器的原理
• MSP430X1/4XX系列单片机的看门狗定时器
• WDT 的相关寄存器 • 看门狗的三种工作模式
• 相关C程序
看门狗定时器的原理(1/2)
• 所谓程序跑飞就是PC指针没有按照预定的程序变更,可 能PC指针指向一个不确定的或者根本就没有存放用户代 码的程序存贮空间,造成PC指针根本无法恢复到用户代 码空间之内,程序跑飞,当发生中断时,中断服务程序 代码仍然可以被执行。
void Clear_WDT(void) { WDTCTL=WDTPW+WDTCNTCL; //计数器清零 }
程序对 WATCHDOG 计数溢出的控制 WDT看门狗模式 本程序中,不断对 WDT的看门狗计 数器及时清零, LED不再闪烁,主 要程序运行正常, 看门狗不会使程序 复位, 同时也保证了一旦 程序发生异常,可 以立即恢复到初始 状态
// 定时周期为32ms // 使能WDT中断 // P1.0输出 // 系统中断允许 //循环等待定时器溢出中断
// 进入 LPM0
//此处开头为双下划线 // P1.0取反
相关C程序(2.用看门狗定时器产生一方波)
#include <msp430x14x.h> void main(void) { WDTCTL = WDT_ADLY_250; IE1 |= WDTIE; P1DIR |= 0x01; _BIS_SR(LPM3_bits + GIE); } // Watchdog Timer interrupt service routine #pragma vector=WDT_VECTOR __interrupt void watchdog_timer(void) { P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR }
相关文档
最新文档