将 RST/NMI 引脚设为 NMI 模式,主程序中点亮 P1.0 口 LED,在 NMI 中断中关掉
LED。现象为当按下 RST 按键时,LED 熄灭,并且再也不亮(除非重新上电)。
#include "MSP430G2553.h"
void main( void )
{
WDTCTL = WDTPW + WDTHOLD +WDTNMI; //NMI模式(非Reset模式)
IE1=NMIIE; //开NMI中断,无需开总中断
P1DIR |=BIT0; //P1.0设为输出口
P1OUT |=BIT0; //亮灯
LPM3; //进入 LPM3
}
//==========NMI中断服务子函数==============
#pragma vector=NMI_VECTOR
__interrupt void NMI_ISR(void) //不可屏蔽中断
{
P1OUT &= ~BIT0; //灭灯
}
关键字:MSP430G2553 WDT NMI中断
引用地址:
MSP430G2553 WDT的NMI中断例子
推荐阅读最新更新时间:2024-03-16 16:08
S3C2440-WDT
当系统运行受到外部干扰或者系统错误,程序有时会出现跑飞,导致整个系统瘫痪。他会设置一段时间,当超出这段 时间,从程序中跳出进入中断处理程序。WatchDog本质上是一种定时器,那么普通定时器拥有的特性它也应该具备,是的当它计时超时时也会引起事件的发生,只是这个事件除了可以是系统中断外,他也可以是一个系统重启信号(Reset Signal)。可以这么说,能发送系统重启信号的定时器我们就叫它WatchDog。看门狗定时器中断是我们不希望看到的,因此我们要想方设法避免它发生。主要的方法就是在中断发生前,重新对看门狗定时器的寄存器进行赋值,使它的定时器重新开始记时,这种方法俗称喂狗。 S3C2440看门狗定时器的功能: 作为常规时钟,
[单片机]
MSP430单片机中的WDT研究
引 言 软件的可靠性一直是一个关键问题。任何使用软件的人都可能会经历计算机死机或程序跑飞的问题,这种情况在嵌入式系统中也同样存在。由于单片机的抗干扰能力有限,在工业现场的仪器仪表中,常会由于电压不稳、电弧干扰等造成死机。在水表、电表等无人看守的情况下,也会因系统遭受干扰而无法重启。为了保证系统在干扰后能自动恢复正常,看门狗定时器(Watchdog TI mer)的利用是很有价值的。 1 看门狗的作用 看门狗定时器是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些
[单片机]
Cortex-M3 (NXP LPC1788)之WDT窗口看门狗定时器
看门狗定时器的用途是在微控制器进入错误状态后的一段合理时间内将其复位。看门狗被是能后,如果用户没有在预先设定的时间内喂狗,那么会产生一个看门狗事件。 看门狗定时器的寄存器有看门狗定时器常数计数器WDTC,每当在喂狗寄存器WDFEED中写入喂狗序列,WDTC中的值就会被写入看门狗定时计数器WDTV,WDTV中的值在看门狗时钟的驱动下递减。我们可以通过设置看门狗定时器报警中断寄存器WDWARNINT寄存器,当WDWARNINT中的值和WDTV中的值匹配时,可以形成中断。最重要的还有看门狗模式寄存器WDMOD,它控制着看门狗的使能,复位,更新模式以及超时标识和中断标志。此外还有一个看门狗定时器窗口寄存器WDWINDOW,它
[单片机]
MSP430G2553测试程序(状态机检测按键)
//原始状态P1.6亮,P1.0暗,利用状态机进行按键检测,按下并释放的瞬间P1.0翻转,P1.6翻转 // // MSP430G2xx3 // ----------------- // /|| XIN|- // | | | // --|RST XOUT|- // P1.3|KEY P1.6|-- LED // | P1.0|-- LED // Built with IAR Embedded Workbench Version: 5.40 / // Timer A0 interrupt service routine #pragma vector=TIMER0_A0_VECTOR
[单片机]
msp430g2553单片机学习心得
四年前学习的TI的Msp430g2553这款单片机,最近在整理学习记录的时候把当时的学习心得重新写下来。学习单片机最早是学习的51系列的,看的也是广为推崇的郭天祥郭老师的《十天学习单片机》,个人觉得单片机学习还是最先攻克51的。学习好51之后,对单片机操作有了基本的认识,再学习其他款单片机自然是能融会贯通。 TI的430系列主打是低功耗,它的技术文档和Dome程序都非常详细,尤其是技术文档真让人有种膜拜的感觉,在每个模块的时候还有个框图,对理解模块内设置非常有帮助,我当时还特意打印了。当时它的User's Guide还没有中文版,如果实在看不懂,可以借鉴F149系列的(这款有人翻译了中文版本)。 个人觉得在学习g2
[单片机]
MSP430G2553 Launchpad 硬件I2C驱动
一、USCI I2C 驱动介绍 对于MSP430G2553,硬件I2C由外设USCI(Universal Serial Communication Interface)提供。USCI又分为USCI_A和USCI_B,其中USCI_A支持UART/IrDA/LIN/SPI通讯,USCI_B支持I2C/SPI通讯。MSP430G2553带有一个USCI_A和一个USCI_B,硬件I2C对应的管脚为P1.6(UCB0SCL)和P1.7(UCB0SDA)。 由于Launchpad上P1.6连接到了LED2,因此在使用硬件I2C时,务必要将LED2对应的跳线取下,否则总线无法正常工作。 在官方MSP430x2xx Family Us
[单片机]
MSP430G2553 输出ACLK和SMCLK
#include io430.h int main( void ) { int i; // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR |= P0 + P4; //设置P1.0 1.4为输出 P1SEL |= P0 + P4; //设置P1.0输出ACLK,P1.4输出SMCLK while(1); return 0; }
[单片机]