0
我想啓用MSP430單片機中斷嵌套,因爲我想在一個定時器的ISR使用UART。 任何幫助,將不勝感激。如何在msp430g2553中啓用嵌套中斷?
我想啓用MSP430單片機中斷嵌套,因爲我想在一個定時器的ISR使用UART。 任何幫助,將不勝感激。如何在msp430g2553中啓用嵌套中斷?
每當msp430
微控制器即將開始執行的中斷處理函數,它做的第一件事是禁用全局「允許中斷」標誌,這是在狀態位寄存器r2
。這有效地禁止了默認的中斷嵌套。
要解決這個問題,通過在你的中斷處理函數的開始設置寄存器標誌回到1允許中斷。爲了簡化語法,實際上是一個eint
指令是:
asm("eint");
通常也有針對特定emnabe編譯器宏,讓您避免編寫彙編代碼。這應該與GCC和IAR工作都:
__enable_interrupt();
(請不要濫用中斷嵌套在大多數情況下,但絕對沒有必要爲它這幾乎肯定是一個更好的主意,改變你的設計,而不是去了。 )