大牛介紹微控制器,微控制器標準軟件設(shè)計流程介紹
微控制器在諸多行業(yè)中都所有使用,尤其是工科專業(yè)。對于微控制器,小編在往期文章中有所介紹,如微控制器工作原理、微控制器特點等。為增進大家對微控制器的認識,本文將對MSP430微控制器標準軟件設(shè)計流程加以介紹。如果你對本文內(nèi)容具有興趣,不妨繼續(xù)往下閱讀哦。
MSP430微控制器軟件設(shè)計的標準流程均可參考下圖。該標準的軟件流程可將系統(tǒng)整體功耗降至最低。
上圖所描述的軟件流程代碼是基于中斷程序的,平時MCU處于睡眠狀態(tài),直到有中斷產(chǎn)生時MCU被喚醒,最大程度降低系統(tǒng)功耗,優(yōu)化電源效率。
理解上圖所示的中斷服務(wù)子程序(1SRs)流程,能更好的掌握MSP430微控制器處理低功耗的模式。MSP430微控制器的低功耗模式由狀態(tài)寄存器SR的控制位控制,在執(zhí)行中斷服務(wù)子程序之前,狀態(tài)寄存器SR的低功耗模式控制位可以被優(yōu)先壓棧。當中斷服務(wù)子程序返回時,主程序調(diào)用中斷之前的低功耗模式控制位,從而進入中斷之前的低功耗模式狀態(tài)。當然,如果我們在ISR中斷服務(wù)子程序返回前修改了保存在SR中的低功耗模式控制位,那么ISR中斷子程序執(zhí)行完之后,主程序流程可以轉(zhuǎn)到另一個不同的低功耗工作模式。
中斷喚醒機制作為MSP430微控制器內(nèi)部低功耗模式的一部分,允許系統(tǒng)快速喚醒,響應(yīng)中斷事件。例如,當一中斷事件發(fā)生之前MSP430微控制器處于低功耗LPM0模式,MCU在執(zhí)行中斷服務(wù)子程序之前首先向堆棧保存SR中的低功耗模式控制位值然后清除SR值,清除SR值使MCU從LPMO模式進入到執(zhí)行中斷活動模式狀態(tài)。在ISR中斷服務(wù)子程序中,軟件設(shè)計者可以寫一條語句清除SR中的低功耗模式控制位,當中斷程序完成后,MCU從堆棧中重新裝載調(diào)用各自寄存器的狀態(tài)值。如果沒有修改SR的低功耗模式控制位,退出中斷后系統(tǒng)仍然返回進入LPM0低功耗模式,若此時已修改SR控制位,當從ISR中斷程序退出后,系統(tǒng)會工作于活動模式時,并且按進入中斷之前的PC指針所指的地址繼續(xù)執(zhí)行程序。
由于可以在fSR中斷服務(wù)子程序中改變低功耗模式,所以設(shè)計者可以選擇在ISR程序中執(zhí)行全部任務(wù),也可以選擇在ISR喚醒MCU后在主程序中處理任務(wù)。
在ISR程序中處理時確保能立即響應(yīng)中斷事件,中斷事件發(fā)生時即能立刻處理中斷任務(wù),但是,在處理一個中斷事件時,其它中斷將不能被載入,直到該中斷任務(wù)完成,而這樣長時間的中斷將會降低系統(tǒng)的響應(yīng)靈敏,所以設(shè)計者須根據(jù)不同系統(tǒng)要求選擇最佳處理方式。
上圖所示的流程圖中主程序需處理兩個中斷事件,這兩個中斷事件所要處理的任務(wù)是在主循環(huán)中處理的。ISRs執(zhí)行兩個不同的事件任務(wù)。第一個中斷,ISRs改變了保存在堆棧中SR的值,可以使系統(tǒng)退出中斷后進入活動工作模式,中斷事件是在主程序中被執(zhí)行,中斷事件可以是一任意應(yīng)用事件,例如定時器、按鍵處理、AD轉(zhuǎn)換等。第二個中斷,在ISR中斷服務(wù)子程序設(shè)置一標志位,在主程序檢測該標志位來判斷是否執(zhí)行相應(yīng)的任務(wù)。如果需處理的中斷事件能在較短的時間內(nèi)迅速完成,這樣就能夠在中斷服務(wù)子程序中直接執(zhí)行,無需進入主程序處理,此時ISR中斷服務(wù)子程序沒必要設(shè)置標志位或改變SR低功耗控制位退出睡眠模式,退出ISR中斷服務(wù)子程序后MCU仍然返回到睡眠模式。該流程可以根據(jù)系統(tǒng)應(yīng)用的復雜性來定,例如,只有一個中斷事一件可喚醒主程序時,則無需設(shè)置系統(tǒng)標志位,此時,通過中斷喚醒主程序,然后主程序進行相應(yīng)的任務(wù)操作,最后MCU重新進入睡眠模式。
上圖中所提到的睡眠模式LPMn是系統(tǒng)所要用到的睡眠低功耗模式,每種應(yīng)用所涉及的模式可能會有所不同,實際的睡眠模式由整個系統(tǒng)所用到的模塊(如定時器、AD、串口等)決定,取決于系統(tǒng)模塊在相應(yīng)的睡眠模式下可否被中斷喚醒。例如由MCU的定時器負責喚醒CPU,且該定時器時鐘為ACLK時,則ACLK必須保持活動模式,則MCU可以工作在LPM3模式;但是如果定時器時鐘為DCO時,則MCU必須工作在LPMO。
以上便是此次小編帶來的“微控制器”相關(guān)內(nèi)容,通過本文,希望大家對MSP430微控制器標準軟件設(shè)計流程具備一定的認知。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!