MSP430使用指南8 -> WDT看门狗模块

发布者:快乐时刻最新更新时间:2020-03-31 来源: eefocus关键字:MSP430  使用指南8  WDT  看门狗模块 手机看文章 扫描二维码
随时随地手机看文章

看门狗WDT电路在平时调试过程中使用并不多,但在真正产品应用上,可以说每一个系统都会使用看门狗,其主要功能和作用如下:


看门狗电路基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作。


使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时溢出归零,使处理器重新启动。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。


MSP430  MCU内部直接集成了看门狗模块,可以通过用户的设置进行对程序是否跑死进行监控,同时可以通过寄存器配置成两种模式,使得客户使用起来更加方便,看门狗电路内部结构图如下图所示:

由上图结构图中可以看出,MSP430   MCU内部会提供一个PUC信号,用于清除看门狗计数器,这也就是外部看门狗所描述的喂狗操作,当程序跑死后,这个信号没有产生,因此当看门狗定时器定时时间到时,则会产生一个复位信号,使得系统重新启动。同时看门狗计数器的时钟源可以由用户进行选择。


MSP430看门狗比较简单,可以配置成两种模式:看门狗模式和间隔时间模式。这两种模式的描述及区别如下:


看门狗模式:和硬件看门狗功能一致,在设置好看门狗计数时间后,如果程序跑死情况出现,在设定的时间过后就会触发看门狗中断,同时软件复位,程序指针PC会指向复位向量,程序实现软件复位。注意:看门狗复位顺序是:程序跑死 -> 触发看门狗中断 -> 执行中断服务程序(保存数据等操作,这个由用户决定) -> 复位程序。


间隔时间模式:这个和定时器类似,不过时间不是很精确,在看门狗计数器达到设定时间后,会触发看门狗中断,但不会让软件重启,同时间隔时间模式是不存在喂狗操作的,类似于定时器,每隔设定的时间周期,都会触发看门狗中断,因此可以当作定时器使用。


下面讲解一下看门狗的寄存器,这个比较简单,看门狗仅有一个寄存器,如下图所示:

WDTCLY寄存器:

WDTPW:首先看这个寄存器的高八位,是WDT的密码,在操作这个寄存器时,必须同时输入密码(5Ah),否则写任何数字都会导致看门狗复位程序。(注意,是同事写入不是先写密码,再操作寄存器) 同时这个高八位密码寄存器的读取结果一致都是69h。


WDTHOLD:看门狗定时器的使能,0停止此定时器,1使能此定时器。


WDTSSEL:看门狗定时器时钟源选择,默认是SMCLK,X_CLK时钟尽在部分MSP430 MCU中存在。


WDTTMSEL:模式选择,0选择看门狗模式,1选择间隔时间模式。


WDTCNTCL:看门狗定时器清除位,写1会清除看门狗定时器当前的值,在此定时器达到定时时间后会自动清除。


WDTIS:定时时间设置,在这里有八个定时时间可选,起始这个就是对定时器的设定值进行设定,看门狗计数器是个32位寄存器,最大数为232,但由于看门狗并不要求精确时间,因此设置成8段,提供八个时间足够了,如上图所示计算时间,这个跟时钟源有关系,如图如果时钟源频率是32768Hz,WDTIS = 100b,那么也就是设置的计数值是215=32768,因此定时时间为1秒。


同时,细心的话你会发现,如果正常使用看门狗功能的话,还缺少两个寄存器:中断使能寄存器和中断标志位寄存器。这两个参数WDTIE和WDEIFG分别在SFRIE1.0和SFRIFG1.0寄存器中,如下图所示:


WDTIE(仅有1bit)

WDTIE在SFRIE1寄存器的0bit上,默认是0,即失能看门狗中断,注意:就算失能看门狗终端,如果看门狗定时器设置在看门狗模式下,在程序跑飞后,依旧会复位程序,知识不产生中断了而已,因此如果不适用看门狗定时器,请失能定时器,用下面程序:


WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT


WDTIFG(仅有1bit)

WDTIFG在SFRIFG1寄存器的0bit上,默认是0,即没有中断产证,可以手动清除,当然,看门狗定时器在进入中断后会自动清除此标志位。


好啦,讲解完原理和寄存器之后,依旧给出看门狗的程序:


Code 1: 间隔时间模式,toggle LED:


//******************************************************************************

#include

 

int main(void)

{

    WDTCTL = WDT_MDLY_32;       // WDT 32ms, SMCLK, interval timer

    P1OUT &= ~BIT0;             // Clear P1.0 output latch for a defined power-on state

    P1DIR |= BIT0;              // Set P1.0 to output direction

 

    PM5CTL0 &= ~LOCKLPM5;       // Disable the GPIO power-on default high-impedance mode

                                // to activate previously configured port settings

    SFRIE1 |= WDTIE;            // Enable WDT interrupt

 

    __bis_SR_register(LPM0_bits | GIE);     // Enter LPM0, enable interrupts

    __no_operation();                       // For debug

 

}

 

// Watchdog Timer interrupt service routine

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

#pragma vector=WDT_VECTOR

__interrupt void WDT_ISR(void)

#elif defined(__GNUC__)

void __attribute__ ((interrupt(WDT_VECTOR))) WDT_ISR (void)

#else

#error Compiler not supported!

#endif

{

    P1OUT ^= BIT0;                          // Toggle P1.0 (LED)

}

Code 2: 看门狗模式,1秒(使用过程中,看门狗时间需要用户根据自身程序去设定):


//******************************************************************************

#include

 

int main(void)

{

    // Selects the ACLK source to REFO (internal 32kHz clock source) as default

    WDTCTL = WDT_ARST_1000;                 // Set Watchdog Timer timeout 1s

    P1DIR |= BIT0;                          // Set P1.0 to output direction

    // Disable the GPIO power-on default high-impedance mode

    // to activate previously configured port settings

    PM5CTL0 &= ~LOCKLPM5;

 

    P1OUT ^= BIT0;                          // Toggle P1.0

    __bis_SR_register(LPM3_bits | GIE);     // Enter LPM3

    return 0;

}

关键字:MSP430  使用指南8  WDT  看门狗模块 引用地址:MSP430使用指南8 -> WDT看门狗模块

上一篇:MSP430使用指南5 -> ICC中断控制器
下一篇:MSP430使用指南12 -> GPIO

推荐阅读最新更新时间:2024-11-14 00:41

基于VB6.0 的MSP430 单片机与PC 机串口通信设计
  1 引言   随着计算机技术的不断发展,计算机应用在其发展过程中逐步形成两大分支,一是通用计算机,PC 机为代表,着眼于高速数值运算和数据处理,但实时测控能力较弱。二是嵌入式微机,以单片机为代表,着重发展测控技术,但其数值运算和数据处理能力较弱。目前,在工业控制以及数据采集和数据处理的大型系统中,由于PC 机软件资源丰富,人机交互方便等优点。以PC 机作为上位机,以单片机组成的控制单元作为下位机,较好地实现测控及显示,又能较快地实现数据采集和处理。逐渐成为现代工业控制领域的一个优化方案。   故提出了基于VB6.0 的PC 机与MSP430 单片机串行通信的实现方法。以RS485 接口为基础,以PC 机为上位机,以MSP4
[单片机]
基于VB6.0 的<font color='red'>MSP430</font> 单片机与PC 机串口通信设计
LPC210X看门狗WDT是用程序
以下程序运行在LPC210X单片机上面 经过本人测试成功! /******************************************************* * 名称:RstWdt() * 功能:看门狗喂狗操作。 * 入口参数:无 * 出口参数:无 ********************************************************/ void RstWdt(void) { WDFEED = 0xAA; WDFEED = 0x55; } /***************************************************** * 名称:main() * 功能
[单片机]
MSP430教程8MSP430单片机复位电路
从上MSP430系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信号POR(Power On Reset)和上电清除信号PUC(Power Up Clear)。 POR信号是器件的复位信号,此信号只有在以下的事件发生时才会产生: 器件上电时。 RST/NMI引脚配置为复位模式,当RST/NMI引脚生产低电平时。 当POR信号产生时,必然会产生PUC信号;而PUC信号的产生时不会产生POR信号。会引起产生PUC信号的事件: POR信号发生时。 启动看门狗时,看门狗定时器计满时。 向看门狗写入错误的安全参数值时。 向片内FLASH写入错误的安全参数值时。 MSP430单片机系统复位后器件的初始 当POR信号或PUC
[单片机]
采用MSP430F单片机设计超低功耗电子温度计
引言 本文设计的超低功耗电子温度计能够通过温度传感器测量和显示被测量点的温度,并可进行扩展控制。该温度计带电子时钟,其检测范围为l0℃~30℃,检测分辨率为1℃,采用LCD液晶显示,整机静态功耗为0.5μA。其系统设计思想对其它类型的超低功耗微型便携式智能化检测仪表的研究和开发,也具有一定的参考价值。 1元器件选择 本系统的温度传感器可选用热敏电阻。在10~30℃的测量范围内,该器件的阻值随温度变化比较大,电路简单,功耗低,安装尺寸小,同时其价格也很低,但其热敏电阻精度、重复性、可靠性相对稍差,因此,这种传感器对于检测在1℃以下,特别是分辨率要求更高的温度信号不太适用。 显示部分可以采用笔段式LCD液晶显示。特别是黑白笔段
[单片机]
采用<font color='red'>MSP430</font>F单片机设计超低功耗电子温度计
用超低功耗MSP430单片机设计数据采集系统
1.MSP430单片机简介 MSP430是TI公司近几年推出的16位系列单片机,其最早是面向于驱动LED显示的应用设计,由于极好的应用效果和很大的市场潜力,TI很快将其发展为通用单片机。现已有X1XX、X3XX、X4XX几个系列,并且还在不断的发展。MSP430作为一种新型的单片机,采用了TI公司最新的低功耗技术,使其在众多的单片机中独树一帜。MSP430工作在1.8~3.6V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPM1、LPM2、LPM3、LPM4),在电源电压为3V时,各种模式的工作电流分别为 AM:340uA、LPM1:70uA、LPM2:17uA、LPM3:2uA、LPM4:0.1uA。单片机可以方便的
[单片机]
用超低功耗<font color='red'>MSP430</font>单片机设计数据采集系统
msp430驱动74hc595(程序+电路)I2C串行通信
#include "msp430G2553.h" int tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; int temp; //毫秒延迟函数 void delay(int ms) { int i; while(ms--) for(i=0;i 120;i++); } //纳米延迟函数 void delayns(int ns) { while(ns--); } void display(temp)//现实位置P2.0=SH;P2.1=ST;P2,2=DS { int k,temp1,t
[单片机]
<font color='red'>msp430</font>驱动74hc595(程序+电路)I2C串行通信
基于MSP430 单片机的光电跟踪伺服系统的研究方案
  研究设计中利用光敏感器件对特定光波长范围的光信号敏感原理,将四象限光电位置探测器与MSP430系列单片机相结合,根据四象限光电探测器输出电压与光斑位置的线性关系,通过数字PID闭环控制输出电压调节单片机输出PWM 的占空比来实现精确稳定的搜寻和小范围跟踪目标。   0 引言   光电跟踪系统是以光电器件(主要是激光器和光电探测器)为基石,将光学技术、电子/微电子技术和精密机械技术等融为一体,形成具有特定跟踪功能的装置。   目前国内外较先进的光电跟踪系统多以激光测距仪、电视跟踪仪和红外跟踪仪三位一体为核心构成。采用机械方法实现跟踪系统控制起来还不太灵敏。对于一个光电追踪系统,一般通过目标识别、位置信号检测、位置信号处理、
[单片机]
基于<font color='red'>MSP430</font> 单片机的光电跟踪伺服系统的研究方案
MSP430G2553(一)IO外部中断说明
这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。 在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。 所有寄存器的具体名称和地址,可以查看M430G2553 datasheet 第 21页中对于P1的寄存器定义 在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮 1.按键的中断配置 要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性, P1DIR &= ~BIT3;//设置P1.
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved