2016-11-13 53 views

回答

1

每當msp430微控制器即將開始執行的中斷處理函數,它做的第一件事是禁用全局「允許中斷」標誌,這是在狀態位寄存器r2。這有效地禁止了默認的中斷嵌套。

要解決這個問題,通過在你的中斷處理函數的開始設置寄存器標誌回到1允許中斷。爲了簡化語法,實際上是一個eint指令是:

asm("eint"); 

通常也有針對特定emnabe編譯器宏,讓您避免編寫彙編代碼。這應該與GCC和IAR工作都:

__enable_interrupt(); 

(請不要濫用中斷嵌套在大多數情況下,但絕對沒有必要爲它這幾乎肯定是一個更好的主意,改變你的設計,而不是去了。 )