173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机嵌套中断的使用

htxw 2023-03-14 资讯中心 16 ℃

单片机中断嵌套问题

普通51单片机只有高低2个优先级,只能一级中断嵌套

STC的某些单片机另有一个高位中断优先级寄存器,优先级就有4个,因此可以实现三级中断嵌套

C语言51单片机中断嵌套问题

对于这个,要这么看:

假设中断A是优先级高的中断,中断B是优先级低的中断

如果在正常执行的过程中,发生中断A,那么,中断A执行完成后,会返回正常程序;

如果在正常执行过程中,发生中断B,又在中断B处理过程中发生中断A,那么,中断A执行完成后,一定要返回的是中断B,这是由硬件决定的,不是软件决定的,所以,软件没有任何指令可以让中断A执行完成后直接跳过还没有执行完的中断B而直接回到主程序,因为这是硬件决定的,软件做不到,即便你在高级中断A中关闭了中断B,但是因为你原来的中断B还没有执行完,所以,仍然要把没执行完的部分执行下去,才能返回到正常程序.

对于ARM系列的可以,对于51来说,是不行的,因为51软件指令不允许修改PC寄存器的值

关于单片机嵌套中断的问题

程序在什么地方进入中断的,就会回到什么地方。不存在嵌套中断直接从第2层中断回主函数的。例如外部中断1采用电平触发,定时器0中断优先级比外中断1高。那么在执行外中断1的时候产生定时器0中断,程序就会跳转去执行定时器0中断。执行完成后,程序仍然会回到外部中断1处执行刚才未执行完成的中断函数,即使现在外中断1的产生条件已经不存在,甚至已经在定时器0中断程序中禁止外中断1,程序还是会回到刚才的断点的。不会直接回到主函数。

你问题在上面补充,我也只能这样完善了,看这一段:

“程序仍然会回到外部中断1处执行刚才未执行完成的中断函数,即使现在外中断1的产生条件已经不存在,甚至已经在定时器0中断程序中禁止外中断1,程序还是会回到刚才的断点的

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

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单片机

单片机嵌套中断的使用的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:单片机嵌套中断的使用

<