Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Interrupt handling 如何在msp430g2553中启用嵌套中断?_Interrupt Handling_Msp430 - Fatal编程技术网

Interrupt handling 如何在msp430g2553中启用嵌套中断?

Interrupt handling 如何在msp430g2553中启用嵌套中断?,interrupt-handling,msp430,Interrupt Handling,Msp430,我想在msp430上启用嵌套中断,就像我想在定时器的ISR中使用UART一样。每当msp430微控制器即将开始执行中断处理程序功能时,它要做的第一件事就是禁用全局“interrupts enabled”(中断已启用)标志,这是状态寄存器r2中的一位。默认情况下,这实际上禁止了中断嵌套 要解决此问题,请在中断处理程序函数开始时将寄存器标志设置回1,以启用中断。为了简化语法,实际上有一个eint指令: asm("eint"); 通常,emnabe还有编译器特定的宏,可以避免编写汇编代码。这应适用于

我想在msp430上启用嵌套中断,就像我想在定时器的ISR中使用UART一样。

每当
msp430
微控制器即将开始执行中断处理程序功能时,它要做的第一件事就是禁用全局“interrupts enabled”(中断已启用)标志,这是状态寄存器
r2
中的一位。默认情况下,这实际上禁止了中断嵌套

要解决此问题,请在中断处理程序函数开始时将寄存器标志设置回1,以启用中断。为了简化语法,实际上有一个
eint
指令:

asm("eint");
通常,emnabe还有编译器特定的宏,可以避免编写汇编代码。这应适用于GCC和IAR:

__enable_interrupt();

(请不要滥用中断嵌套。在大多数情况下,绝对不需要它。几乎可以肯定,改变设计比使用它更好。)

每当
msp430
微控制器即将开始执行中断处理程序功能时,它做的第一件事就是禁用全局设置“interrupts enabled”(中断启用)标志,该标志位于状态寄存器
r2
中的一位。默认情况下,该标志有效禁止中断嵌套

要解决此问题,请在中断处理程序函数的开头将寄存器标志设置回1,从而启用中断。为了简化语法,实际上有一条
eint
指令用于此操作:

asm("eint");
通常,emnabe也有特定于编译器的宏,可以避免编写汇编代码。这应该适用于GCC和IAR:

__enable_interrupt();
(请不要滥用中断嵌套。在大多数情况下,根本不需要中断嵌套。几乎可以肯定,改变设计比采用中断嵌套更好。)