国产久草深夜福利精品_精品国产看高清国产毛片_成年日韩片av在线网站_亚洲国产综合777_免费高清一级在线观看_欧美色图中文字幕_老中医用嘴排阴毒 小雨_99精品无码视频在线播放_久久久精品强暴视频_国产aⅴ一区最新精品

MSP430的軟硬件C延時(shí)程序設(shè)計(jì)
電子元件,電子元器件深圳市創(chuàng)唯電子有限公司
您現(xiàn)在的位置: 首頁 > 電子技術(shù)
MSP430的軟硬件C延時(shí)程序設(shè)計(jì)  2012/3/1
作者:太原理工大學(xué)賀虎秦建敏MSP430是超低功耗16位單片機(jī),越來越受到電子工程師親睞并得到廣泛應(yīng)用。C程序直觀,可讀性好,易于移植和維護(hù),已被很多單片機(jī)編程人員所采用。MSP430集成開發(fā)環(huán)境(如IAREmbeddedWorkbench和AQ430)都集成了C編譯器和C語言級(jí)調(diào)試器C—SPY。但是C語言難以實(shí)現(xiàn)精確延時(shí),這一直困擾著很多MSP430單片機(jī)程序員。筆者在實(shí)際項(xiàng)目開發(fā)過程中,遇到很多需要嚴(yán)格時(shí)序控制的接口器件,如單總線數(shù)字溫度傳感器DSl8820、
 

作者:太原理工大學(xué) 賀虎 秦建敏

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

    1  硬件延時(shí)

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

    #pragma vector=WD_r_VECTOR

    interrupt void WDT_Delay(void){

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

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

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

    static unsigned int n250MS=O;

    n250MS++;

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

與《MSP430的軟硬件C延時(shí)程序設(shè)計(jì)》相關(guān)列表
電話:400-900-3095
QQ:800152669
庫存查詢
Copyright(C) 2011-2021 Szcwdz.com 創(chuàng)唯電子 版權(quán)所有 備案號(hào):粵ICP備11103613號(hào)
專注電子元件代理銷售  QQ:800152669  電子郵件:sales@szcwdz.com  電話:400-900-3095