|
大家好!一直用的网上的MSP430的程序框架写程序,程序的最后有一段是关于非可屏蔽中断的。程序如下:
/*****************************************************************************
不可屏蔽中断函数
******************************************************************************/
#pragma vector=NMI_VECTOR
__interrupt void Nmi()
{
//以下为参考处理程序,不使用的中断源应当删除
if((IFG1&OFIFG)==OFIFG)
{
//振荡器失效
IFG1 &= ~OFIFG;
//以下填充用户代码
}
else if((IFG1&NMIIFG)==NMIIFG)
{
//RST/NMI不可屏蔽中断
IFG1 &= ~NMIIFG;
//以下填充用户代码
}
else //if((FCTL3&ACCVIFG)==ACCVIFG)
{
//存储器非法访问
FCTL3 &= ~ACCVIFG;
//以下填充用户代码
}
}
以前一直没有管这一段,
但是现在出了问题,在某些状态,MCU(F1232)会死机,仿真时发现停留在 else if((IFG1&NMIIFG)==NMIIFG)处,在网上查相应资料说,响应中断以后要迅速退出中断,以免引起中断嵌套。导致死机,但是具体如何退出?这一段程序要如何如处理?请大家赐教!
|
|