MSP430G2553与MSP430F5336系列单片机总结[3]——看门狗定时器

发布者:HarmoniousSoul最新更新时间:2020-03-29 来源: eefocus关键字:MSP430G2553  MSP430F5336系列  单片机  看门狗定时器 手机看文章 扫描二维码
随时随地手机看文章

看门狗定时器的作用是进行基本定时,当程序发生错误时执行一个受控的系统重启动,这是在工业现场为了防止程序跑飞而设计的定时器,在看门狗定时使用,时间达到时,会产生系统复位,使CPU重新运行系统程序。实际上,看门狗定时器可以设置为看门狗使用,即到达时间后系统复位,也可以当做普通的定时器使用。在默认情况下看门狗定时器被配置为SMCLK作为参考信号,复位时间间隔为32ms并工作在看门狗模式,所以如果我们不要用到看门狗,一开始就需要关闭看门狗,这也是为什么之前我们的那么多程序有第一句关看门狗指令的原因。看门狗定时器和普通定时器功能很类似,所以使用也很简单,主要的控制寄存器是WDTCTL。弄懂这个寄存器各个位的意思就能够很好地设置看门狗定时器。现在直接讲几个例程:


首先是MSP430G2553单片机的:


1.看门狗定时器利用中断控制产生16hz的方波


#include 


void main(void)

{

  WDTCTL = WDT_MDLY_32;                     // Set Watchdog Timer interval to ~30ms

  IE1 |= WDTIE;                             // Enable WDT interrupt

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


  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt

}


// Watchdog Timer interrupt service routine

#pragma vector=WDT_VECTOR

__interrupt void watchdog_timer(void)

{

  P1OUT ^= 0x01;                            // Toggle P1.0 using exclusive-OR

}


/*

 * 32ms*2=64ms周期,f=1000/64=16hz

 */


2.采用看门狗定时器不利用中断默认模式产生方波


#include  


void main(void)

{

  P1DIR |= 0x01;                            // Set P1.0 to output

  P1OUT ^= 0x01;                            // Toggle P1.0

  _BIS_SR(LPM4_bits);                       // Stop all clocks

}

/*

 * f=16.62hz

 *看门狗定时器相当于定时32ms,所以总周期为64ms,频率为16hz

 */


接下来是MSP430F5336单片机的看门狗程序:


1.看门狗定时器利用中断控制产生


#include 

/*

 * 默认情况下WDT的时钟都是SMCLK时钟采用的是XT1CLK,即1Mhz,WDTIS2定时32ms启用中断

 * WDTIS对应表:

 * 000   001   010   011   100   101   110   111

 * 2000s 128s  8.2s  512ms 32ms  8ms   512us 64us

 */

void main(void)

{

  WDTCTL = WDTPW+WDTTMSEL+WDTCNTCL+WDTIS_4;

// 看门狗定时器工作在定时计数模式,定时32ms,选择SMCLK作为参考时钟

  SFRIE1 |= WDTIE;                          // 使能看门狗定时器中断

  P1DIR |= 0x01;                            // 设置P1.0端口为输出

  __bis_SR_register(LPM0_bits + GIE);  // 进入低功耗模式0,并启用中断

}

// 看门狗中断服务程序

#pragma vector=WDT_VECTOR

__interrupt void WDT_ISR(void)

{

  P1OUT ^= 0x01;                            // 反转P1.0端口状态

}


2.采用看门狗定时器不利用中断产生方波

#include 

/*

 * WDTSSEL0时WDT的时钟都是ACLK时钟,采用的是XT1CLK,即32768hz,WDTIS2定时1ms启用中断

 * 按理说WDTIS对应表应该如下:

 * 000       001      010   011   100   101   110    111

 * 18h12m16m 1h8m16s  236s  16s   1s    250ms 15.6ms 1.95ms

 * 但是实际上如下:

 * 000           001          010       011       100   101   110    111

 * 18h12m16*3.3m 1h8m16*3.3s  236*3.3s  16*3.3s   3.3s  820ms 52ms   6.8ms

 * 但是实测ACLk的确是32K频率,最后却不对,具体原因不明,可能是板子原因

 */

void main(void)

{

  WDTCTL = WDTPW+WDTCNTCL+WDTSSEL0+WDTIS_7;

  // 看门狗定时器工作在看门狗模式,定时1S,选择ACLK作为参考时钟

  /*

  P1DIR |= BIT0;

  P1SEL |= BIT0;                                // 设置P1.0口味ACLK输出

  */

  P1DIR |= 0x02;                            // 设置P1.1端口为输出

  P1OUT ^= 0x02;                            // 反转P1.1端口状态

  __bis_SR_register(LPM3_bits + GIE); // 进入低功耗模式3,并启用中断

}


以上就是看门狗定时器的使用和说明,非常简单~


关键字:MSP430G2553  MSP430F5336系列  单片机  看门狗定时器 引用地址:MSP430G2553与MSP430F5336系列单片机总结[3]——看门狗定时器

上一篇:MSP430 高版本软件下载低版本程序
下一篇:MSP430G2553 flash操作例子

推荐阅读最新更新时间:2024-11-10 23:31

PIC16F72单片机---中断测试程序
/*************PIC16F72单片机程序******************************/ /*************************************************************/ /*****File Function : 中断练习程序 *****/ /*****Program Author : ZhengWen(ClimberWin) *****/ /*****MCU : PIC16F72 外部晶振6MHZ *****/ /*****Compile Date : 2010/11/9 ****
[单片机]
PIC单片机源程序的模拟仿真设计
我们在编辑PIC单片机的C语言时,常常应用对源程序的模拟仿真技术,因为对程序的模拟仿真可代替部分单片机的硬件制作与调试,即使在深入学习PIC单片机C语言程序时,模拟仿真技术,也是不可缺少的。这里以程序实例演示其操作方法。 对源程序的模拟仿真可以完成下列功能:直接观察C程序从主程序main()开始运行的全过程;为了清楚观察程序中各变量和寄存器的变化情况,可采用单步运行(stePINto)命令和单步越过(stepover)命令进行模拟运行调试,使观察变量更方便;设置断点再选择Run(快速)命令,程序运行到断点处会停下来,以便观察变量功能;此外,还能定量观察程序中的变化值,如直接观察程序的延时量等多种功能。当然在进行程序模拟仿真时,
[单片机]
PIC<font color='red'>单片机</font>源程序的模拟仿真设计
STM32F单片机的RTC校准功能是什么?
在STM32里面有备份寄存器(BKP),它的功能之一就是用来存储RTC校验值的校验寄存器,即具有RTC校准功能。在PC13引脚上输出RTC 校准时钟,RTC闹钟或者秒脉冲。在程序中有#define RTCClockOutput_Enable /*RTC Clock/64 is output on tamper pin(PC.13)*/ BKP可以用来存储84个字节的用户应用程序数据,他们处在备份域里,当Vdd电源被切断时,他们仍然由Vbat维持供电。 判断RTC后备寄存器1的值是否为事先写入的某个值,如果不是,则说明RTC是第一次上电,需要配置RTC。针对BKP也有相应的库函数。 u16 BKP_ReadBackupRegi
[单片机]
基于单片机的采集模块研究
1. 引言 脉冲电表是目前电力系统用户侧较为常见的一种电子电量表计。对于远程电子抄表系统,要实现对脉冲表输出脉冲的可靠、精确计量。本文研究探讨了对于脉冲表可靠脉冲捕捉、脉冲计量,特别研究了脉冲电表信号输出线路的断线报警、掉电数据存储等关键问题,并对区域脉冲表群抄表需要的现场总线进行了研究,提出用CAN总线为数据通信的脉冲电表群的模块化解决方案。 2. 脉冲采集模块设计 CH1脉冲采集的主要任务是对CH2 CH3脉冲电表输出脉冲的实时、准确计数,CH4是所有电量统计的基础。脉冲采集模块CH5的好坏直接影响整个系统的可靠性和CH6准确性,因此在整个抄表系统中占据着CH7重要的地位。 2.1 脉冲采集板的结构 采集板的具体结构如图
[单片机]
基于<font color='red'>单片机</font>的采集模块研究
pic单片机 TIMER0控制流水灯
p IC 单片机 TIMER0控制流水灯 #include pic.h __CONFIG(0x3B31); unsigned char num=0,i=0; void init() { TRISB=0x00; TRISC=0x00; PORTB=0xFE; PORTC=0xFE; } void TMR0_init() { OPTION=0x07; //0有 上拉电阻 000 0 111 1:256 分频 GIE=1; PEIE=1; T0IF=0; TMR0=250; T0IE=1; } void interrupt TIMER0() { T0IF=0; i
[单片机]
8051单片机供水系统水位控制的硬件电路设计
供水系统水位控制原理 下图是水塔水位控制原理图。图中虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内,为此,在水塔的不同高度安装固定不动的三根金属棒,以感知水位变化情况。其中A棒处于下限水位以下,C棒处于上限水位,B棒在下限水位处。A棒接+5V电源,B棒、C棒各通过一个电阻与模拟地相连。 水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。供水时,水位上升,当达到上限时,由于水的导电作用,B棒、C棒连通+5V电源,因此,b、c两端均为高电平“1”状态。这时,应停止电机和水泵的工作,不再给水塔供水。 当水位降到下限时,B棒、C棒都不能与A棒导通,因此,b、c两端均为“0”状态。这时,应启动电机,
[单片机]
8051<font color='red'>单片机</font>供水系统水位控制的硬件电路设计
基于89C52单片机和MB90092芯片实现视频图像叠加应用系统的设计
1、引言 随着监控现场的扩展和探头数量增多,在监控端的图像显示系统中,经常需要接收外部数据并把相关的信息实时地连同图像显示在监控屏幕上,以便使用人员知道该图像信息以何种方式来自何处及与之相关的信息,时间,地区徽标,实时数据显示在屏幕上。但是对于监控人员而言,监控端遭到攻击是一个值得担心的问题,因此,改善技术方案和增强安全性是对目前状况提出的一种迫切要求。监控人员希望所看到的是得到验证的真实图像,无论时间、环境、探头位置、角度和焦距都必须得到保证。在远程监控场合,有关重要部门的监控者往往对于接收图像的实时性和真实性不完全放心,尤其是如果对高科技对象实时监控,那么,当监控者因故临时离开监控台一段时间后,由于不知道被监控方是否对监控系统
[单片机]
基于89C52<font color='red'>单片机</font>和MB90092芯片实现视频图像叠加应用系统的设计
单片机系统的基本概念
(1)单片机组成:中央处理器、存储器、I/O设备。 (2)存储器:物理实质是一组或多组具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。 A、ROM(只读存储器):一般用于存放固定的程序或数据表格等,数据在掉电后仍然会保留下来。 B、RAM(随机存储器):用于暂存程序和数据、中间计算结果,或用作堆栈用等,数据在掉电后就会丢失。 (3)I/O端口:单片机与外界联系的通道,它可以对各类外部信号(开关量、模拟量、频率信号)进行检测、判断、处理,并可控制各类外部设备。现在的单片机I/O口已经集成了更多的特性和功能,对I/O端口的功能进行了拓展和复用,例如外部中断、ADC检测以及PWM输出等等。
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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