我想在msp430上启用嵌套中断,因为我想在Timer的ISR中使用UART。 任何帮助将不胜感激。
答案 0 :(得分:1)
每当msp430
微控制器即将开始执行中断处理程序函数时,它首先要做的是禁用全局“中断启用”标志,该标志位于状态寄存器r2
中。这有效地禁止了默认的中断嵌套。
要解决此问题,请通过在中断处理函数开始时将寄存器标志设置回1来启用中断。为了简化语法,实际上有一条eint
指令:
asm("eint");
通常,emnabe还有特定于编译器的宏,可以避免编写汇编代码。这应该适用于GCC和IAR:
__enable_interrupt();
(请不要滥用中断嵌套。在大多数情况下,绝对不需要它。改变你的设计几乎肯定是一个更好的想法。)