MSP430的看门狗常见用法以及中断函数的书写方法

发布者:TranquilMind88最新更新时间:2017-01-09 来源: eefocus关键字:MSP430  看门狗  中断函数 手机看文章 扫描二维码
随时随地手机看文章

今天下午看了一下MSP430的看门狗的基本用法

看门狗是为了防止程序跑飞而设定的,但是由于看门狗是一个类似于定时器,因此可以把他当作定时器来使用

示例代码:用看门狗定时器使一个led闪烁

#include

void  main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDT_MDLY_32;//宏定义

  IE1 |=WDTIE; //允许看门狗定时器中断

  P2DIR |= BIT7;

  

  _BIS_SR(LPM0_bits+GIE);//在这里的话将cpu进入低功耗模式


}


#pragma vector = WDT_VECTOR

__interrupt void watchdag_timer(void)

{

  P2OUT ^=BIT7;//异或操作基本上是取反操作

}



注意这里有一个比较好的宏定义:WDTCTL = WDT_MDLY_32;进入该宏定义会发现类似的宏定义有很多



/* WDT-interval times [1ms] coded with Bits 0-2 */

/* WDT is clocked by fSMCLK (assumed 1MHz) */

#define WDT_MDLY_32         (WDTPW+WDTTMSEL+WDTCNTCL)                         /* 32ms interval (default) */

#define WDT_MDLY_8          (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)                  /* 8ms     " */

#define WDT_MDLY_0_5        (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)                  /* 0.5ms   " */

#define WDT_MDLY_0_064      (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)           /* 0.064ms " */

/* WDT is clocked by fACLK (assumed 32KHz) */

#define WDT_ADLY_1000       (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)                 /* 1000ms  " */

#define WDT_ADLY_250        (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)          /* 250ms   " */

#define WDT_ADLY_16         (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)          /* 16ms    " */

#define WDT_ADLY_1_9        (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)   /* 1.9ms   " */

/* Watchdog mode -> reset after expired time */

/* WDT is clocked by fSMCLK (assumed 1MHz) */

#define WDT_MRST_32         (WDTPW+WDTCNTCL)                                  /* 32ms interval (default) */

#define WDT_MRST_8          (WDTPW+WDTCNTCL+WDTIS0)                           /* 8ms     " */

#define WDT_MRST_0_5        (WDTPW+WDTCNTCL+WDTIS1)                           /* 0.5ms   " */

#define WDT_MRST_0_064      (WDTPW+WDTCNTCL+WDTIS1+WDTIS0)                    /* 0.064ms " */

/* WDT is clocked by fACLK (assumed 32KHz) */

#define WDT_ARST_1000       (WDTPW+WDTCNTCL+WDTSSEL)                          /* 1000ms  " */

#define WDT_ARST_250        (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0)                   /* 250ms   " */

#define WDT_ARST_16         (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1)                   /* 16ms    " */

#define WDT_ARST_1_9        (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)            /* 1.9ms   " */


这里我们可以根据通常的需要,选择合适的定时时间

说到定时时间,这里又不得不讲一下中断函数,在IAR这个编译环境中,一般中断函数的写法是


#pragma vector = 中断向量

__interrupt void 中断函数名(void)

{

  用户程序;

}


注意,中断向量可以在430的头文件中查找,中断函数的声明必须是void 中断函数名(void),这是因为中断函数没有返回值,也没有中断的形式参数


但是本人又在网站上看到另外一种用switch来写的,就是一个中断源对应几个中断向量,这种写法目前我还没有见过源码,所以不好总结


关键字:MSP430  看门狗  中断函数 引用地址:MSP430的看门狗常见用法以及中断函数的书写方法

上一篇:MSP430F5438点亮led
下一篇:MSP430的比较器

推荐阅读最新更新时间:2024-03-16 15:29

MSP4305xx/6xx系列 低频振荡器REFO编程实例
MSP430 5x6x系列内部校准的低频REFO可用于成本敏感的应用场合,可以省去外部晶体。REFO内部校准为32.768kHz,可提供一个稳定的参考频率。 REFO可作为FLL的频率输入源使用。REFO与FLL相结合,提供了一个灵活的系统时钟设置范围,而不需要晶体。REFO不使用时不消耗电力。 本实例示范如何使用REFO,并将其作为ACLK SMLK MCLK时钟来使用,通过将此三个时钟输出到特定的管脚,便于示波器测量验证。 工程介绍: MCU型号: MSP430F6736A 编译平台: IAR for MSP430 6.40.1 实验项目: 测试 MCU 内部时钟 REFOCLK ,选择 REFOCLK
[单片机]
<font color='red'>MSP430</font>5xx/6xx系列 低频振荡器REFO编程实例
MSP430单片机查错
1、设置IAR软件Tab键缩进字符个数 方法:Tools-Options-Editor-Tab Size,按习惯改后面数字. 2、Error : Undefined external LcdInit referred in main( E:\MSP430 \UDP\Debug\Obj\main.r43 ) 原因:工程中有多个.c文件,但不在工程中. 解决:把.c文件加到工程里。 3、Error : Entry ReadingData in module DS1302 ( E:\MSP430 \Module\DS1302\Debug\Obj\DS1302.r43 ) redefined in modul
[单片机]
PIC16C5X的复位电路
PIC16C5X的复位电路可以由系统上电,把MCLR输入拉为低电平,或看门狗定时器溢出而产生。振荡启动定时器OST作用或MCLR输入为低电平,单片机将保持复位状态,复位时单片机处于以下状态: · 振荡器启动或工作,包括电源上升启动或睡眠唤醒启动。 · I/O控制寄存器设定为全“1”,使所有I/O引脚(PA0-PA3、PB0-PB7、PC0-PC7)处于高阻状态。 · 程序计数器PC设为全“1”,对于PIC16C54/55为1FFH,对于PIC16C56为3FFH,对于PIC16C57为7FFH。 · OPTION寄存器设为全“1”。 · 看门狗定时器WDT及其分频器清“0”。 · 状态寄存器f3的程序页
[单片机]
PIC16C5X的复位电路
基于MSP430和Cyclone II的网络数据加密实现
1 引言   随着信息技术和网络化进程的发展,网络通信安全问题日益突出。现场可编程门阵列(FPGA)以其自身设计灵活、可靠性高的优点广泛应用于加密领域。硬件实现的加密算法不占用计算机资源.加密过程完全与外部总线隔离,具有较高的数据保护能力。算法可灵活改变,具有较强的独立性。加密机由单片机,FPGA和El通信接口组成。FPGA内部算法由VHDL语言编写。该系统适用于要求数据安全较高的场合,其终端可为计算机,银行POS机等,提供数据传输的安全性和保密性。    2 流加密解密原理及算法   2.1 流加密解密原理   流密码由密钥和密码算法两部分组成,密钥一般存储在加解密设备内部,在数据传输前已设置完成。密码算法在较
[单片机]
基于<font color='red'>MSP430</font>和Cyclone II的网络数据加密实现
msp430 看门狗设置
看门狗定时器( Watchdog Timer (WDT_A))实际上是一个特殊的定时器,即可以用来作为看门狗使用,也可以用作定时器。 所谓的看门狗功能,是指可以监控程序是否由于某些干扰或者错误而跑飞。其原理就是发生故障的时间满足规定的定时时间后,产生一个非屏蔽中断,使系统复位。这样当在调试程序或预计程序在某个地方可能瞬时发生错误时(如外部电路干扰),选用设置看门狗定时中断可以避免程序跑飞。 当然,它也可以用作一般的定时功能。 不过实际上,由于看门狗定时器(作看门狗使用时)需要很严密的设置(否则程序容易经常重启),所以很多人都不会使用这项功能。所以,程序一开始就加上一句话:WDTCTL=WDTPW+WDTHOLD来关闭看门
[单片机]
<font color='red'>msp430</font> <font color='red'>看门狗</font>设置
MSP430G2553系统学习之系统时钟
把MSP430G2553的系统时钟作为系统学习的一篇讲解可见他的重要性,那为什么要把时钟放到第一位呢?学过FPGA的朋友都能体会得到,如果把CPU的所有工作任务作为纵坐标(y轴),那么时钟就是他的横坐标(x轴)了,如下图1 时钟概念所示。 图 1 时钟概念 也就是说时钟就是一个微机(小到8位的51单片机大到32位的S3C2440等)在时域上的一个衡量标准。如果学过FPGA的朋友都很清楚,微机是以对输入的时钟源的脉冲计数的方式来确定时域参数的。所以,MSP430单片机也一样,拿到他之后首先从时钟入手,一定要养成这种系统学习的好方法,否则再学一百款单片机也是感觉再学新的,做不到举一反三,事半功倍的效果。如果能够把握这其中的通理
[单片机]
<font color='red'>MSP430</font>G2553系统学习之系统时钟
MSP430F249GPIO控制入门
#include MSP430x24x.h void main(void) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; //关狗 P4DIR = BIT0|BIT1|BIT2|BIT3; //设置为输出 P4SEL = 0; while(1) { volatile unsigned int i; P4OUT ^= 0x0F; //电平翻转 i = 50000; // Dela
[单片机]
基于MSP430行驶车辆检测器的设计
0  引言 近年来,车辆检测器作为交通信息采集的重要前端部分,越来越受到业内人士的关注。鉴于公路交通现代化管理和城市交通现代化管理的发展需要, 对于行驶车辆的动态检测技术——车辆检测器的研制在国内外均已引起较大重视。车辆检测器以机动车辆为检测目标,检测车辆的通过或存在状况,其作用是为智能交通控制系统提供足够的信息以便进行最优的控制。目前,常用的行驶车辆检测器主要有磁感应式检测器,超声波式检测器,压力开关检测器,雷达检测器,光电检测器以及视频检测器等,而环形线圈电磁感应式车辆检测器具有性能稳定、结构简单、检测电路易于实现、成本低、维护量少、适应面广等优点,市场应用范围最广。目前我国实际用于高速公路和城市道路的车辆检测器几乎全部是从
[单片机]
基于<font color='red'>MSP430</font>行驶车辆检测器的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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