亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多任務(wù)程序架構(gòu)的搭建

        2011-08-08 12:48:16虞益龍
        電腦與電信 2011年12期
        關(guān)鍵詞:多任務(wù)頻度中斷

        虞益龍

        (常州劉國鈞高等職業(yè)技術(shù)學(xué)校,江蘇 常州 213000)

        1.引言

        傳統(tǒng)的單片機(jī)程序設(shè)計(jì)多為單任務(wù)系統(tǒng),其業(yè)務(wù)邏輯順序安排在主函數(shù)中,主函數(shù)一般為死循環(huán),循環(huán)過程中通過調(diào)用函數(shù)來完成相應(yīng)的操作,而對于一些較短的實(shí)時任務(wù)則通過中斷方式進(jìn)行處理。此種程序結(jié)構(gòu)簡單、直觀,易于實(shí)現(xiàn),但對于較復(fù)雜的應(yīng)用此種結(jié)構(gòu)實(shí)現(xiàn)不了,并且不能滿足實(shí)時性要求較高的場合,因此必須考慮一種新的結(jié)構(gòu)模式。

        本文提出的方法也是按時間片切換任務(wù)的,但不同的是,執(zhí)行任務(wù)的時間不是由定時器平均分配的,而是按照執(zhí)行任務(wù)中一個完整過程的時間來自動分配的。在單片機(jī)系統(tǒng)程式設(shè)計(jì)中,可按系統(tǒng)的功能或模塊劃分為任務(wù),而每個任務(wù)可按具體作業(yè)細(xì)分為各個過程??梢娙蝿?wù)由過程組成。按時間片分配任務(wù)的設(shè)計(jì),系統(tǒng)效率就會更高。

        2.多任務(wù)輪循程序架構(gòu)

        多任務(wù)輪循程序架構(gòu)就是一個系統(tǒng)由多個任務(wù)構(gòu)成,各任務(wù)之間相對獨(dú)立。本文提出一種基于定時器中斷的多任務(wù)輪循程序架構(gòu),如圖1所示。在主程序中,根據(jù)任務(wù)延時量判斷任務(wù)是否就緒,各任務(wù)輪循占用CPU時間,由任務(wù)延時量控制任務(wù)執(zhí)行頻度及CPU關(guān)照度,而任務(wù)延時量又由定時器T0中斷控制。

        圖1 定時中斷的多任務(wù)輪循程序架構(gòu)流程圖

        基于定時器中斷的多任務(wù)輪循架構(gòu)中,子任務(wù)的執(zhí)行依靠主程序任務(wù)調(diào)度來實(shí)現(xiàn),子任務(wù)不能設(shè)計(jì)成死循環(huán)流程。正因?yàn)楦魅蝿?wù)不搶占CPU,所以程序設(shè)計(jì)不用考慮現(xiàn)場保護(hù)問題,簡化了程序設(shè)計(jì)。程序整體架構(gòu)有定時器固定節(jié)拍中斷,該節(jié)拍需滿足最快任務(wù)執(zhí)行頻度需要。定義定時中斷頻度,由執(zhí)行頻度要求最快的任務(wù)確定,太高會降低CPU運(yùn)行效率,太低任務(wù)頻度不好分配,一般低于200Hz即可。本文采用50Hz。對于按鍵掃描程序模塊,每秒按50次頻度執(zhí)行即可,LCD1602和實(shí)時時鐘數(shù)據(jù)讀取模塊可以按每秒3次頻度執(zhí)行即可。

        2.1 調(diào)用函數(shù)和宏定義

        /*代碼說明:這里通過宏定義,在頭文件中把易變參數(shù)進(jìn)行定義,這樣使得程序容易修改,一改全改,便于移植。*/

        2.2 定時器設(shè)置及初始化

        /*代碼說明:定時中斷在這里就是心臟,依靠定時中斷完成任務(wù)延時量的修改,從而實(shí)現(xiàn)不同任務(wù)運(yùn)行頻度控制。*/

        2.3 定時器中斷服務(wù)

        任務(wù)執(zhí)行頻度由任務(wù)延時量task_delay[ID]控制,各任務(wù)延時量在定時中斷中減一,直到延時量為零,相關(guān)任務(wù)就緒?!癐D”表示各任務(wù)代號。任務(wù)調(diào)度過程就是對任務(wù)延時量檢測過程,只有任務(wù)延時量為零時,CPU從其它任務(wù)中返回后立即執(zhí)行相應(yīng)的任務(wù),由于不同任務(wù)延時量不同,從而實(shí)現(xiàn)不同任務(wù)具有不同的執(zhí)行頻度而相互不受時間影響。這里必須滿足一個條件,就是每個任務(wù)執(zhí)行一次的時間不能太長,不能超過一次定時中斷時間,否則任務(wù)之間執(zhí)行頻度會有影響,對于50Hz的中斷頻率,每個任務(wù)執(zhí)行時間最好不超過20ms,即CPU光顧一次任務(wù)時間要在20ms以內(nèi),這樣就可以保證任務(wù)之間相互完全不受影響。

        定時器中斷服務(wù)等待任務(wù)就緒代碼如下:

        /*代碼說明:在定時中斷服務(wù)中,執(zhí)行的任務(wù)必須很簡短,重置定時器初值,把大于0的任務(wù)延時量減1,該定時中斷作為心臟跳動,不斷進(jìn)出運(yùn)行,為了節(jié)省CPU時間,該中斷任務(wù)越簡單越好。*/

        2.4 指向函數(shù)的指針函數(shù)

        2.5 任務(wù)切換

        任務(wù)切換在主程序main()中完成,系統(tǒng)初始化之后,在一個大循環(huán)中,判斷各任務(wù)的延時量是否為零,當(dāng)任務(wù)延時量為零時,表示該任務(wù)就緒,當(dāng)前一個任務(wù)主動放棄CPU之后,馬上啟動就緒的新任務(wù)。各任務(wù)之間不具有搶占功能,因此不用考慮堆棧與保護(hù)。

        主程序服務(wù)及任務(wù)切換代碼如下:

        /*代碼說明:根據(jù)任務(wù)延時量是否為零選擇執(zhí)行就緒任務(wù),任務(wù)執(zhí)行完成后返回再恢復(fù)設(shè)定的延時量;下劃線表示任務(wù)執(zhí)行的頻度,即每秒鐘執(zhí)行多少次。各個不同的任務(wù),根據(jù)需要,設(shè)定不同的延時量,延時量在定時中斷中逐步減一歸零,每個任務(wù)必須主動放棄CPU,正因此,各任務(wù)執(zhí)行時間最好不要超過定時中斷節(jié)拍時間單位,本文為20ms,否則將影響其它任務(wù)運(yùn)行。*/

        2.6 任務(wù)過程設(shè)計(jì)

        /*代碼說明:任務(wù)延時量為零時,就緒任務(wù)執(zhí)行,任務(wù)過程可以根據(jù)需求設(shè)置若干個。例:數(shù)碼管顯示模塊可以放在任務(wù)0執(zhí)行,按鍵掃描程序模塊放在任務(wù)1執(zhí)行。*/

        由此可見,系統(tǒng)按完整過程(最小作業(yè)單元)自動切換任務(wù),不需保留臨時現(xiàn)場數(shù)據(jù),不需定時被動切換,不需額外的調(diào)度表。與單任務(wù)編程相比,多任務(wù)編程也沒有占用系統(tǒng)任何額外資源,其結(jié)構(gòu)和代碼的可讀性也沒有較大的改變。

        3. 結(jié)語

        單片機(jī)多任務(wù)編程方法可歸納為:(1)在單片機(jī)多任務(wù)編程中,各任務(wù)依次排成隊(duì)列輪流執(zhí)行;(2)每次執(zhí)行任務(wù)只調(diào)用其一個過程來執(zhí)行,可保證各任務(wù)間最快速地切換;(3)各任務(wù)、過程間使用全局變量共享或交換數(shù)據(jù),避免各種參數(shù)傳遞。

        在過去采用傳統(tǒng)方法設(shè)計(jì)復(fù)雜的單片機(jī)系統(tǒng)過程中,人們?nèi)菀装l(fā)現(xiàn)系統(tǒng)交叉調(diào)用多,重復(fù)代碼多,系統(tǒng)運(yùn)行效率差,邏輯容易混亂且難以調(diào)試。鑒于此,需要探索一個結(jié)構(gòu)清晰,易調(diào)試,任務(wù)明確且可重用、提高開發(fā)效率,無相互調(diào)用,無重復(fù)代碼的系統(tǒng)。采用定時中斷的多任務(wù)輪循程序架構(gòu),與傳統(tǒng)設(shè)計(jì)相比,基于該架構(gòu)的系統(tǒng)產(chǎn)品消耗硬件資源少,運(yùn)行效率高,其硬件功能更多以軟件取代,所以運(yùn)行更穩(wěn)定,易維護(hù),性價比高,取得了更高的經(jīng)濟(jì)效益。

        [1]劉明路,王亮生,李世煜.基于RTX51的單片機(jī)軟件設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(3).

        [2]歐偉明.面向嵌入式系統(tǒng)設(shè)計(jì)的RTX51[J].應(yīng)用技術(shù)研究,2007(5).

        [3]周程.RTX51 Tiny在核數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].核電子學(xué)與探測技術(shù),2008,599-610.

        [4]劉光德,林莘,王群.基于RTX51嵌入式實(shí)時操作系統(tǒng)的智能稱重儀表的研究[J].科技應(yīng)用,2004,7-9.

        [5]KEIL Software,Inc.《RTX51 Real-time Kernel》[EB/OL].http://www.keil.com/rtx51,2004.

        猜你喜歡
        多任務(wù)頻度中斷
        基于中心化自動加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        眨眼頻度可判斷煙癮大小
        婦女之友(2017年3期)2017-04-20 09:20:00
        基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
        電測與儀表(2016年5期)2016-04-22 01:13:46
        銅綠假單胞菌MIC分布敏感百分?jǐn)?shù)與抗菌藥物使用頻度相關(guān)性研究
        未知環(huán)境下基于粒子群優(yōu)化的多任務(wù)聯(lián)盟生成
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        亚洲欧美日韩成人高清在线一区| 日韩成人高清不卡av| 美艳善良的丝袜高跟美腿| 色五月丁香五月综合五月| 久久人妻少妇嫩草av蜜桃| 国产欧美日韩专区毛茸茸| 扒开女性毛茸茸的视频| 大又大又粗又硬又爽少妇毛片| 国产福利酱国产一区二区| 思思久久96热在精品不卡| 黄色大片国产精品久久| 高黄暴h日本在线观看| 日本少妇被黑人xxxxx| 国产肉体XXXX裸体784大胆| 亚洲精品视频一区二区三区四区| 久久天天躁夜夜躁狠狠85麻豆| 国产美女久久精品香蕉69| 精品久久久久中文字幕APP| 老岳肥屁熟女四五十路| 三年片在线观看免费观看大全中国| 女人大荫蒂毛茸茸视频| 亚洲无码图| 亚洲av高清一区二区三区| 丰满少妇高潮惨叫久久久一| 伊人影院综合在线| 美女被插到高潮嗷嗷叫| 草草影院ccyy国产日本欧美| 国产伦一区二区三区色一情| 亚洲精品www久久久| 成人区视频| 人妻系列少妇极品熟妇| 日韩av无码中文字幕| 久久免费的精品国产v∧| 无码AV午夜福利一区| 国产传媒精品成人自拍| 东北女人毛多水多牲交视频| 国产最新AV在线播放不卡| 国产一区二区在线中文字幕| 久久精品国产清自在天天线| 日本a级特黄特黄刺激大片| 少妇特殊按摩高潮不断|