999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2011-08-08 12:48:16虞益龍
電腦與電信 2011年12期
關(guān)鍵詞:單片機系統(tǒng)

虞益龍

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

1.引言

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

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

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

多任務(wù)輪循程序架構(gòu)就是一個系統(tǒng)由多個任務(wù)構(gòu)成,各任務(wù)之間相對獨立。本文提出一種基于定時器中斷的多任務(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)度來實現(xiàn),子任務(wù)不能設(shè)計成死循環(huán)流程。正因為各任務(wù)不搶占CPU,所以程序設(shè)計不用考慮現(xiàn)場保護問題,簡化了程序設(shè)計。程序整體架構(gòu)有定時器固定節(jié)拍中斷,該節(jié)拍需滿足最快任務(wù)執(zhí)行頻度需要。定義定時中斷頻度,由執(zhí)行頻度要求最快的任務(wù)確定,太高會降低CPU運行效率,太低任務(wù)頻度不好分配,一般低于200Hz即可。本文采用50Hz。對于按鍵掃描程序模塊,每秒按50次頻度執(zhí)行即可,LCD1602和實時時鐘數(shù)據(jù)讀取模塊可以按每秒3次頻度執(zhí)行即可。

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

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

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

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

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

任務(wù)執(zhí)行頻度由任務(wù)延時量task_delay[ID]控制,各任務(wù)延時量在定時中斷中減一,直到延時量為零,相關(guān)任務(wù)就緒。“ID”表示各任務(wù)代號。任務(wù)調(diào)度過程就是對任務(wù)延時量檢測過程,只有任務(wù)延時量為零時,CPU從其它任務(wù)中返回后立即執(zhí)行相應(yīng)的任務(wù),由于不同任務(wù)延時量不同,從而實現(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,該定時中斷作為心臟跳動,不斷進出運行,為了節(jié)省CPU時間,該中斷任務(wù)越簡單越好。*/

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

2.5 任務(wù)切換

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

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

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

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

/*代碼說明:任務(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é)語

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

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

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

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

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

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

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

猜你喜歡
單片機系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于PowerPC+FPGA顯示系統(tǒng)
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
半沸制皂系統(tǒng)(下)
小議PLC與單片機之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 国产香蕉在线| 日本欧美一二三区色视频| 一级毛片在线播放| 亚洲欧美天堂网| 亚洲无码高清一区二区| 亚洲第一在线播放| 99久久精品国产精品亚洲| 国产黄色免费看| 国产精品内射视频| 国产主播在线一区| 中文字幕色在线| 狠狠色香婷婷久久亚洲精品| 国产亚洲精久久久久久无码AV| 欧美一级在线| 久久久久久久久亚洲精品| 一区二区欧美日韩高清免费| 亚洲一级无毛片无码在线免费视频| 国产人成网线在线播放va| 亚洲国产中文欧美在线人成大黄瓜| 久久久久久高潮白浆| 日韩精品一区二区深田咏美| 国产欧美综合在线观看第七页| 日韩一区精品视频一区二区| 国产成人一区免费观看| 亚洲熟女中文字幕男人总站| 被公侵犯人妻少妇一区二区三区| 成人在线综合| 黄色不卡视频| 久久综合丝袜日本网| 特级aaaaaaaaa毛片免费视频| 国产精品久久久精品三级| 在线精品视频成人网| 成人毛片免费在线观看| 在线观看欧美国产| 亚洲综合色在线| 伊人蕉久影院| 成人福利在线免费观看| 欧美成人日韩| 亚洲日本韩在线观看| 无码中文字幕乱码免费2| 四虎亚洲国产成人久久精品| 国产呦精品一区二区三区下载| 久久久久人妻一区精品| 成人福利在线视频免费观看| 亚洲男人天堂2020| 午夜在线不卡| 久久香蕉国产线看观看式| 精品小视频在线观看| 911亚洲精品| 精品中文字幕一区在线| 亚洲福利视频网址| 精品少妇人妻av无码久久| 成人在线视频一区| 国产福利大秀91| 久久亚洲黄色视频| 免费午夜无码18禁无码影院| 国产精品国产三级国产专业不| 国产情侣一区| 666精品国产精品亚洲| 99免费在线观看视频| 午夜国产精品视频| 国产免费a级片| 999国产精品| 国产AV无码专区亚洲精品网站| 午夜丁香婷婷| 国产91久久久久久| 亚洲成综合人影院在院播放| 毛片免费观看视频| 亚洲成人精品在线| 国产视频自拍一区| 色噜噜综合网| 国产男女免费完整版视频| 亚洲婷婷在线视频| 一区二区午夜| 欧美日韩一区二区三区四区在线观看 | 欧美日韩亚洲综合在线观看| 亚洲va视频| 国产主播福利在线观看| 亚洲天堂首页| 国产午夜人做人免费视频中文| 永久在线播放| 欧美成人a∨视频免费观看|