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