MSP430系列單片機的各個模塊都可以獨立運行,如定時器、輸入/輸出端口、A/D轉換、看門狗、液晶顯示器等都可以在CPU休眠的狀態下獨立工作。若需要主CPU工作,任何一個模塊都可以通過中斷喚醒CPU,從而使系統以最低功耗運行。 讓CPU工作于突發狀態可以充分利用CPU的低功耗性能。通常,使用軟件將CPU設定到某一低功耗模式,在需要時使用中斷將CPU從休眠狀態中喚醒,完成工作后又可以進入相應的休眠狀態。如:讓CPU工作在LPM3狀態,通過中斷事件轉換到AM活動模式,根據運行需要,又可以從AM狀態進入相應的低功耗模式:LPM0/LPM3或LPM4。 系統的這些低功耗特性是靠系統對中斷的響應來實現的。系統響應中斷的過程:(1)硬件自動中斷服務。包括PC入棧、SR入棧;中斷向量賦給PC;GIE、 CPUOFF、OSCOFF和SCG1清除;以及IFG標志位清除(單源中斷標志)。(2)執行中斷處理子程序。(3)執行RETI指令(中斷返回),包括SR出棧;PC出棧。 例如:系統初始化完成后工作于低功耗模式0,中斷事件觸發到活動模式,中斷處理結束后進入低功耗模式3。 ;主程序 ……;初始化操作開始 ……; ……;初始化結束 BIS #GIE+CPUOFF, SR ; 主程序中設置低功耗模式0,LPM0 ;……;程序在這里停止 ;中斷子程序 …… ……; 中斷處理結束 BIS #GIE+CPUOFF+SCG1+SCG0, 0(SP) ; 設置SR為低功耗模式3,LPM3 RETI; 中斷返回 ;系統進入低功耗模式3 …… 如果主程序期待在中斷返回之后繼續執行某些操作,可以在中斷處理子程序中改變SR的值為AM模式,系統中斷退出后根據恢復的SR和PC的值,來執行設定的某些操作。 ;主程序 ……;初始化操作開始 ……; ……;初始化結束 BIS #GIE+CPUOFF, SR ; 主程序中設置低功耗模式0,LPM0 L1 操作1 L2 操作2 ……; ;中斷子程序 …… ;中斷處理開始 …… ……; 中斷處理結束 BIS #GIE+CPUOFF, 0(SP) ; 設置SR為活動模式,AM RETI; 中斷返回,系統進入活動模式 …… 主程序執行到LPM0處停止執行,L1,L2等語句不執行。之后中斷事件保存PC(L1指令地址)和SR(低功耗模式0),中斷喚醒CPU,執行中斷處理程序;由于在中斷處理子程序中將SR設置為活動模式,所以中斷返回后CPU處于活動狀態,并從PC指向的L1指令處開始繼續執行…… |