msp430中断(不可屏蔽中断NMI)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断系统
中断的优先级是固定的。
中断优先级的是以模块的在链接所处的位置决定的。
越靠近CPU/NMIRS,模块的优先级越高。
中断优先级决定了,当系统有多个中断等待处理时,先处理哪一个中断。
有三种中断类型:
系统中断
不可屏蔽中断
可屏蔽中断
不可屏蔽中断(NMI)
不可屏蔽中断不能被总中断使能位(GIE)所屏蔽,而由单独的中断使能位(NMIIE, ACCVIE,OFIE)来控制的。
当接收到不可屏蔽中断中断时,所有的不可屏蔽中断使能位会被自动复位。
程序从不可屏蔽中断的中断向量0FFFCH存储的地址开始运行。
用户软件必须设置所需的不可屏蔽的中断使能位,以便不可屏蔽中断能够再次响应。
不可屏蔽的中断源有以下三种:
1. 当配置为NMI模式时,RST/NMI引脚的一个边沿
2. 振荡器失效
3. 错误使用FLASH
RST/NMI引脚
上电时,RST/NMI引脚配置为复位模式。
在看门狗控制寄存器WDTCTL中选择RST/NMI引脚的功能。
如果RST/NMI引脚被设置为复位功能,RST/NMI引脚处于低电平时CPU将一直保持复位状态。
当转为高电平时,CPU从存储在复位向量OFFFEH中的地址开始运行,RSTIFG将被置位。
如果RST/NMI引脚被用户软件配置为不可屏蔽中断时,如果NMIIE位被置位时,由WDTNMIES选择的信号边沿到来产生NMI中断。
RST/NMI的标志位NMIIFG将会被置1。
注释1:RST/NMI保持低电平
在配置为NMI模式时,产生一个NMI事件的信号不会拉低RST/NMI引脚的电平。
如果其他的信号源产生一个PUC时,NMI信号是低电平,设备将处于复位状态,因为一个PUC 信号使RST/NMI引脚变为复位模式。
注释2:修改WDTNMIES
当选择了NMI模式,WDTNMIES位改变了,NMI是否产生将依据于实际的RST/NMI 引脚的电平。
在系统被设置为NMI模式前,如果NMI的边沿选择位改变早于选择NMI模式,不产生NMI。
FLASH的存取冲突
当FLASH存取冲突发生时,ACCVIFG位将会被置1。
置ACCVIE为1,在发生FLASH 存取冲突时,就产生一个NMI中断。
NMI中断服务程序可以检查ACCVIFG位来判断NMI 中断是否由FLASH存取冲突引起。
振荡器错误
振荡器错误信号对晶振失效的情形发出警告。
置位OFIE将能够使振荡器发生错误时产生一个NMI中断。
NMI中断服务程序可以检查OFIF位来判断NMI中断是否由振荡器引起。
PUC信号可能触发一个振荡器错误。
因为PUC信号使系统由LFXT1模式转变为LF 模式,因而关断HF模式。
PUC信号也关闭振荡器XT2。
一个NMI中断处理的例子
NMI中断是一个多源中断。
NMI中断将自动复位NMIIE, OFIE和ACCVIE中断使能位。
根据
实际应用的需要,用户的NMI中断服务子程序可以重置中断标志位,置位中断使能位为了防止中断嵌套,不应该在中断服务子程序中设置ACCVIE, NMIIE,OFIE。