<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > MSP430的軟硬件C延時(shí)程序設計

MSP430的軟硬件C延時(shí)程序設計

——
作者:太原理工大學(xué) 賀虎 秦建敏 時(shí)間:2007-12-10 來(lái)源:?jiǎn)纹瑱C及嵌入式系統應用 收藏

  是超低功耗16位單片機,越來(lái)越受到電子工程師親睞并得到廣泛應用。C程序直觀(guān),可讀性好,易于移植和維護,已被很多單片機編程人員所采用。集成開(kāi)發(fā)環(huán)境(如IAR Embedded Workbench和AQ430)都集成了C編譯器和C語(yǔ)言級調試器C—SPY。但是C語(yǔ)言難以實(shí)現精確延時(shí),這一直困擾著(zhù)很多單片機程序員。筆者在實(shí)際項目開(kāi)發(fā)過(guò)程中,遇到很多需要嚴格時(shí)序控制的接口器件,如單總線(xiàn)數字溫度傳感器DSl8820、實(shí)時(shí)時(shí)鐘芯片PCF8563(需要用普通]/o模擬12C總線(xiàn)時(shí)序)、三線(xiàn)制數字電位器AD8402、CF卡(Compact Flash Card)等都需要μs級甚至納ns級精確延時(shí);而一些慢速設備只需要ms到s級的延時(shí)。為此,筆者提出了適合于不同延時(shí)級別需要的軟件或硬件精確延時(shí)方法,并已實(shí)際應用,效果良好,大大縮短了開(kāi)發(fā)周期。

1  硬件延時(shí)

    MSP430單片機系統程序多采用事件驅動(dòng)機制,即在沒(méi)有外部事件觸發(fā)的情況下CPU休眠于低功耗模式中。當外部事件到來(lái)時(shí),產(chǎn)生中斷激活CPU,進(jìn)入相應的中斷服務(wù)程序(ISR)中。中斷響應程序只完成兩個(gè)任務(wù),一是置位相應事件的標志,二是使MCU退出低功耗模式。主程序負責使MCU在低功耗模式和事件處理程序之間切換,即在主程序中設一個(gè)無(wú)限循環(huán),系統初始化以后直接進(jìn)入低功耗模式。MCU被喚醒后,判斷各標志是否置位。如果是單一標志置位,那么MCU執行相應的事件處理程序,完成后轉入低功耗模式;若是有多個(gè)標志同時(shí)置位,主程序按照事先排好的消息隊列對它們依次判別并進(jìn)行處理,所有事件處理完畢以后MCU休眠,系統進(jìn)入低功耗狀態(tài)(該消息隊列的順序是按照任務(wù)的重要性設定的優(yōu)先級)。在這種前后臺系統中,由于主程序是無(wú)限循環(huán),就必須關(guān)閉看門(mén)狗,與其閑置,不如用其定時(shí)器的功能作硬件延時(shí)。使用MSP430單片機看門(mén)狗定時(shí)器實(shí)現任意時(shí)長(cháng)精確延時(shí),既滿(mǎn)足了系統實(shí)時(shí)低功耗的要求,也彌補了使用無(wú)限循環(huán)延時(shí)的時(shí)間難確定和占用CPU時(shí)間長(cháng)的缺點(diǎn)。通過(guò)下例,講解在同一WDT ISR中完成不同時(shí)長(cháng)延時(shí)的技巧。


  #pragma vector=WD_r_VECTOR

  interrupt void WDT_Delay(void){

//看門(mén)狗中斷服務(wù)程序

if((DelayTime&Delay500ms)==Delay500ms){

//判斷需要500 ms延時(shí)的標志是否置位

static unsigned int n250MS=O;

n250MS++;

if(n250MS==2){    //延時(shí)250ms



關(guān)鍵詞: MSP430 MCU和嵌入式微處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>