MSP430单片机中断嵌套,如何跳出中断?

当进行A中断时,来了一个B中断,我想让B中断程序执行完后不继续

执行A中断而跳出整个中断,去执行主程序,请问这个怎么设置呢?

MSP430单片机中断嵌套跳出中断的方法:

如果是要求中断A->中断B这样的序列才会从中断B直接返回主程序的话,那必须要在中断A那里做个标志位表明发生了中断A,由中断B判断。中断B执行完,修改堆栈指针,指向中断A的堆栈地址(压栈后的),直接指令退出中断即可。

但要注意,若在中断A中开了总中断,则可以响应后来的中断B,B执行完再继续执行A。注意:进入中断B后总中断同样也会关闭,如果B中断程序执行时需响应中断C,则此时也要开总中断,若不需响应中断,则不用开中断,B执行完后跳出中断程序进入A程序时,总中断会自动打开。

扩展资料:

MSP430单片机的相关要求规定:

1、MSP430单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。

2、MSP430系列的部分产品具有Flash存储器,在系统设计、开发调试及实际应用上都表现出较明显的优点。TI公司推出具有Flash 型存储器及JTAG 边界扫描技术的廉价开发工具MSP-FET430X110,将国际上先进的JTAG技术和Flash在线编程技术引入MSP430。

3、MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。

参考资料来源:百度百科-MSP430单片机

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-08
中断的时候会把SR状态跟中断下来要执行语句的地址放进堆栈中,实现处理完中断以后cpu要执行的语句,注意是地址先进,SR后进,出栈时SR先出,地址后出,当然了在中断里面可以嵌套中断的,对可屏蔽中断来说,主要是CPU响应中断以后,GIE会自动复位,所以不能对可屏蔽中断进行嵌套,如果在中断中要嵌套可屏蔽中断的话可以开GIE,但要注意的是如果此时正在响应的中断标志还是置位的情况下会反复进入此中断,就像死循环一样,这时会引起堆栈的溢出,而在响应可屏蔽中断时,不可屏蔽中断不受此影响,因为他不受GIE的影响,只受自己单独的使能位影响。在堆栈中的操作原理类似。希望对你有帮助本回答被提问者采纳
第2个回答  2011-02-10
你的意思是说A中断一直没完 而直接去主程序 你可以直接关中断 就可以进入主循环了啊

但是一般要A中断 没有理由让他不执行的 呵呵 个人见解

MSP430单片机中断嵌套,如何跳出中断?
MSP430单片机中断嵌套跳出中断的方法:如果是要求中断A->中断B这样的序列才会从中断B直接返回主程序的话,那必须要在中断A那里做个标志位表明发生了中断A,由中断B判断。中断B执行完,修改堆栈指针,指向中断A的堆栈地址(压栈后的),直接指令退出中断即可。但要注意,若在中断A中开了总中断,则可以响...

msp430编程定时器B的中断
因为在进入中断时430会把PC,SR压栈,( SR内保存着低功耗模式的设置)即使你写了MOV.B #LPM3,SR,在退出中断出栈时SR会被重新设置成低功耗0,要达到这样的目的,只能更改堆栈内SR的设置:MOV.B #LPM0,0(SP)。5中断向量:430的中断向量是FFE0H—FFFFH,一共32个字节也就是FLASH的最后一段,...

中断ADC12中断服务程序里面只放_EINT();会中断溢出不能解决,但再加一句...
1、MSP430的中断默认不支持嵌套的,嵌套中断你懂的吧:就是一个中断发生的时候另外一个高优先级的中断到来的时候会进入高优先级的中断,并保护现场等待结束再继续之前的中断。2、你说中断ADC12中断服务程序里面只放_EINT();会中断溢出不能解决,是什么意思。我猜你是没有清中断标志的缘故吧,仔细检查下...

msp430 当一个中断运行的时候另一个优先级较高的中断被触发,会怎么执行...
该高优先级中断要等待当前低优先级的中断返回之后,才会被触发;除非你在当前中断开了总中断,这样就会中断嵌套

MSP430中PC的相关问题
所以叫“后进先出”中断向量就是中断源触发后CPU要跳转到的特定地址,中断,就是打断之前正在执行的东西,比如你正在吃饭,电话响了,你要做的就是先放下碗筷(相当于压栈,保护吃饭现场),然后接电话(跳转到中断服务),接完以后,挂机,拿碗筷(RET,恢复吃饭现场),然后继续吃。

msp430 中看门狗问题?
比如:while(1);中断在有事情需要中断的时候用,比如按键中断,按键以后我们希望程序暂停MAIN主循环,转去执行按键中断处理程序,这个时候就叫做中断。复位是中断的一种,只是复位中断是不可屏蔽中断,而且具有高优先级,而且复位中断只能跳转到程序的最开头,而不是我们指定的程序段。

MSP430 堆栈检测 C语言
堆栈保护必须用汇编设计,c语言你看不到堆栈这一部分,这就是汇编存在的意义,根不性的问题必须使用贴近机器语言的编程执行

msp单片机的特点是什么
低功耗,16位

单片机的优先级是什么,中断源有几个?
同级中断有一个默认的优先级,由高到低的顺序是外中断0,定时器0,外中断1,定时器1,串口 lccqj50 | 发布于2010-12-25 举报| 评论 3 0 51系列的有五个中断源,能实现两级中断嵌套。52系列的多一个T2中断源。具体书上都有,仔细看看吧。 热心网友| 发布于2010-12-24 举报| 评论 0 0 ...

为什么说操作系统ucos是实时的?ucos是多任务的?
如果ucOS能满足你的要求(通过你对任务的合理设计),那么就可以说他是实时的OS。使用ucOS构建系统时,你的所有用户事务(需要做的事情)可以被划分到多个任务里,ucOS可以根据你的实际设计,按优先级调度他们(协调该先执行哪一个任务,并立即执行),这就可以说,ucOS是多任务了。

相似回答