女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于AT91R40008微處理器的軟件定時器設(shè)計

0引言

當前,嵌入式系統(tǒng)的軟件代碼日趨復雜。然而,由于存儲器、定時器等硬件資源仍然相對有限。如何在不影響系統(tǒng)整體性能的情況下,為嵌入式系統(tǒng)提供優(yōu)異的定時性能,使系統(tǒng)能夠高效運行,已是一個值得關(guān)注的問題。

1軟件定時器

軟件定時器是一組定時器實體的集合,是一種針對不同定時服務(wù)進行統(tǒng)一管理的多任務(wù)鏈表類型數(shù)據(jù)結(jié)構(gòu)。軟件定時器可使系統(tǒng)在某一確定時刻執(zhí)行指定操作。它以可編程定時/計數(shù)器或單穩(wěn)延時電路為基礎(chǔ)。利用硬件定時器產(chǎn)生的定時中斷來實現(xiàn)。雖然軟件定時器也需要占用CPU時間,但是相對于硬件定時器來說,它的資源多,定時時間長,使用靈活,實現(xiàn)起來簡單方便,因而在復雜系統(tǒng)或定時器工作方式比較復雜的應用場合更能體現(xiàn)其價值。 對定時器的組織和管理常用的有多隊列式和單鏈表式。前者通過將定時器劃分成不同時長的隊列來減少每次參與計數(shù)的定時器個數(shù)。這種組織方式在空負載檢查時存在很多冗余操作,而真正有效的操作只占少部分。后者則通過將定時器采取先進先出方式來組織定時器隊列,這種方式使用起來雖然比較簡單,但存在以下兩個問題:一是定時器隊列太長。找到所有到點定時器的時間開銷難以接受;二是在當時鐘中斷發(fā)生時,需要對所有的定時器的時長域進行減法操作,而這部分的時間性開銷很大。 本文采用的是單鏈表定時器隊列,但在定時器隊列組織方式上,根據(jù)各個定時器節(jié)點的定時值,對其按升序進行排序,然后按照后一個定時器的值是前面所有定時器值加上本身值的規(guī)則對此節(jié)點重新賦定時值。以使所有的到點定時節(jié)點集中于隊列的前面。由于所有定時器節(jié)點的隱含值均遞減,故可形成一個相對時長定時隊列。這樣,在每次產(chǎn)生時鐘中斷時,只需修改第一個定時器節(jié)點的值即可,從而大大降低了時鐘中斷處理函數(shù)的工作量。當需要添加新的定時器節(jié)點時,可在插入定時器進入列表前,根據(jù)第一項來修改超時值。對于這樣的組織管理方式,由于第一個節(jié)點就是當前定時器鏈表中定時時間最短的節(jié)點,且對鏈表的到期操作只需要集中在第一個節(jié)點上,故能減少對定時器鏈表多余的冗余操作,也免去了查找定時節(jié)點的開銷。 2 AT91R40008微處理器

AT91R40008是美國ATMEL公司推出的一款基于ARM7TDMI嵌入式微處理器的16/32位微處理器。該器件的定時器/計數(shù)器模塊含有三個完全相同的16位定時器/計數(shù)器通道。每個通道都能獨立編程來完成多種功能(如頻率測量、事件計數(shù)、時間間隔測量、脈沖產(chǎn)生、延遲和脈沖寬度調(diào)制等)。每個通道有三個外部時鐘輸入、5個內(nèi)部時鐘輸入和2個可由用戶配置的多功能I/O。此外,每個通道還可驅(qū)動一個內(nèi)部信號,以通過A-IC(先進中斷控制器)產(chǎn)生處理器中斷。AT91R40008器件中的定時器/計數(shù)器模塊有兩個控制所有通道的全局寄存器。其中模塊控制器寄存器可以使三個通道由同一條指令同時啟動,而模塊模式寄存器則為每一個通道定義了外部時鐘輸入,并允許它們級聯(lián)。每一個定時器/計數(shù)器都可以獨立工作于兩種模式,分別是捕獲模式和波形模式。前者用于對信號的測量,后者則允許產(chǎn)生波形。通過TC通道模式寄存器的WAVE位可以控制定時器/計數(shù)器的工作模式。定時器的重新設(shè)定和啟動可由觸發(fā)條件決定。每個模式下通常有三種類型的內(nèi)部觸發(fā)和一個外部觸發(fā)。其內(nèi)部的三種觸發(fā)類型分別是:

(1)軟件觸發(fā)

每個通道有一個軟件觸發(fā),可通過設(shè)定TC通道控制寄存器的SWTRG來得到。

(2)SYNC觸發(fā)

每個通道有一個同步觸發(fā)。該信號被響應和同一個軟件的一般效果觸發(fā)相同。所有通道的同步信號均可通過設(shè)定TC模塊控制寄存器的SYNC來同時響應。

(3)RC比較觸發(fā)

如果CPCTRG在TC通道模式寄存器被置位,那么,RC將在每個通道中執(zhí)行,此時如果計數(shù)器與RC寄存器中的數(shù)值相匹配,則將得到一個RC比較觸發(fā)。

事實上,定時器通道也能配置成一個外部觸發(fā)器。在捕獲模式中,外部觸發(fā)器信號能在TIOA和TIOB之間被選擇而執(zhí)行一個觸發(fā)。而在波形模式中,外部事件則可通過TIOB、XC0、XC1或XC2編程來執(zhí)行一個觸發(fā)。如果產(chǎn)生一個外部觸發(fā),那么,脈沖周期必須比系統(tǒng)時鐘周期更長才能保證該觸發(fā)被檢測到。

3軟件定時器的實現(xiàn)

由于AT91R40008中的三個定時器/計數(shù)器都是16位,所以每個計數(shù)器的值只能從0x0000增加到0xFFFF,在溢出中斷以后,這個值將重新從0x0000開始。該特性限制了定時器/計數(shù)器單次最長的定時時間。為此,本文采用改進的單鏈表方式組織定時器鏈表,這樣,在定時器中斷上,硬件定時器不再周期性地產(chǎn)生中斷請求,而只在用戶預先指定的時刻產(chǎn)生,同時將下一次中斷發(fā)生時間動態(tài)寫入硬件定時器。

軟件定時器的實現(xiàn)可通過各種函數(shù)來實現(xiàn),主要有定時器驅(qū)動函數(shù)、定時器的初始化函數(shù)、定時器任務(wù)函數(shù)、定時器的啟動和關(guān)閉函數(shù)、定時器的添加和刪除函數(shù)以及定時器中斷處理函數(shù)等。

3.1定時器的驅(qū)動

軟件定時器可通過一個16位定時器/計數(shù)器來提供定時中斷,然后關(guān)閉定時器/計數(shù)器相應的中斷并設(shè)置相關(guān)參數(shù),然后打開相應的中斷來完成。定時器驅(qū)動流程圖如圖1所示。

3.2定時器初始化

定時器初始化函數(shù)主要是初始化定時器單鏈表,給定時器單鏈表分配一塊內(nèi)存單元;該函數(shù)將設(shè)置一個頭結(jié)點,這個頭結(jié)點包含定有時器鏈表中定時器單元個數(shù)、定時器單元句柄以及指向單鏈表隊列的頭指針。然后創(chuàng)建一個定時器任務(wù),以作為定時器到期時的執(zhí)行函數(shù)。

3.3定時器的啟動和關(guān)閉

定時器啟動函數(shù)可通過設(shè)置定時器寄存器TC_RC(TC寄存器)和TC_CCR(TC通道控制寄存器)來實現(xiàn),而定時器關(guān)閉函數(shù)則可通過TC_CCR(TC通道控制寄存器)和TC_SR(TC狀態(tài)寄存器)來執(zhí)行。

3.4定時器的添加和刪除

在定時器添加函數(shù)中,需要判斷新加的定時器所要插入的位置。插入時,如果鏈表為空,則直接插入第一個節(jié)點位置;否則,需要將新加的定時器值與鏈表中其余元素做一個比較,以找到新加的定時器在鏈表中的合適位置,同時相應修改自身的定時值。其示意性代碼如下:


3.5定時器中斷處理

在定時器中斷處理函數(shù)中,首先要求得逝去的定時器ticks值。然后將這個值與定時器隊列的第一個定時器節(jié)點做比較,以判斷第一個定時器節(jié)點是否定時時間到。這個函數(shù)的示意性代碼如下:

3.6定時器任務(wù)

在定時器任務(wù)中設(shè)置有一個無限循環(huán)等待,可創(chuàng)建一個定時器等待消息隊列,以等待定時消息的到來。定時器消息到時,即執(zhí)行這個定時消息所對應的任務(wù),同時釋放該函數(shù)定時器所占用的定時器單元節(jié)點,然后開始下一輪循環(huán)。

4軟件定時器應用實例

為了檢驗上述算法的可行性和可靠性,筆者采用RC比較觸發(fā)方式來對定時器報文進行了設(shè)計。其中時鐘信號選擇為MCK/1024,即MCK為50MHz,ticks為62500,也就是每1.28s產(chǎn)生一次定時器中斷,設(shè)置定時時間為5s。運行該應用程序后,用Sniffer抓包軟件抓獲的報文如圖2所示。

由圖2可以看出,取平均值后,定時器任務(wù)間隔時間約為5.000 207s,完全可以達到設(shè)計要求,滿足設(shè)計需要。

5 結(jié)束語

本文介紹了一種在AT91微處理器上通過單鏈表實現(xiàn)的軟件定時器的設(shè)計方法。雖然創(chuàng)建時,該定時器的到期時間是亂序的,但啟動后的定時器則會嚴格按照到期時間的先后順序形成定時器單鏈表,并依次進入定時中斷同時發(fā)出對應消息。經(jīng)過測試。利用此定時器隊列管理機制,能夠簡單有效地滿足系統(tǒng)對定時器的需求,同時節(jié)省了嵌入式系統(tǒng)定時管理所需要的計算資源。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

上海2022年10月11日 /美通社/ -- 10月10日,明月鏡片正式官宣劉昊然成為品牌代言人。一個是中國鏡片領(lǐng)導品牌,通過科技創(chuàng)新引領(lǐng)了鏡片行業(yè)的發(fā)展;一個是新生代實力演員,憑借高票房作品贏得了觀眾的認可。此次雙方攜...

關(guān)鍵字: PMC 控制 節(jié)點 藍光

CPU內(nèi)部自帶的定時器模塊,通過初始化、配置可以實現(xiàn)定時,定時時間到以后就會執(zhí)行相應的定時器中斷處理函數(shù)。硬件定時器一般都帶有其它功能,比如PWM輸出、輸入捕獲等等功能。但是缺點是硬件定時器數(shù)量少??!

關(guān)鍵字: 軟件定時器 硬件定時器 CPU

(全球TMT2022年9月5日訊)燧原科技在2022世界人工智能大會"算盡其用·定義AI算力中心新實踐"云端算力產(chǎn)業(yè)應用論壇上正式發(fā)布云燧智算機(CloudBlazer POD)。云燧智算機是針對大規(guī)模、集約化人工智能...

關(guān)鍵字: 人工智能 數(shù)據(jù)中心 節(jié)點 CPU

凝聚燧原科技兩代芯片研發(fā)與多個大規(guī)模人工智能算力中心工程實踐,面向大規(guī)模、集約化、綠色低碳數(shù)據(jù)中心建設(shè),云燧智算機(CloudBlazer POD)正式發(fā)布。 上海2022年9月3日 /美通社/ -- 燧原科技在202...

關(guān)鍵字: 人工智能 數(shù)據(jù)中心 節(jié)點 TC

北京2022年9月2日 /美通社/ -- 近日,由CDCC中數(shù)智慧信息技術(shù)研究院主辦的2022第三屆中國數(shù)據(jù)中心綠色能源大會(以下簡稱中國數(shù)據(jù)中心綠色能源大會)在"六朝金陵,十里秦淮"的南京...

關(guān)鍵字: 數(shù)據(jù)中心 綠色能源 數(shù)字經(jīng)濟 節(jié)點

中華中醫(yī)藥學會中醫(yī)體質(zhì)分會第二十次學術(shù)年會暨國醫(yī)大師學術(shù)經(jīng)驗傳承研討會同期召開 北京2022年9月1日 /美通社/ -- 為了滿足我國中醫(yī)藥傳承創(chuàng)新發(fā)展迫切需求,加快建設(shè)高層次中醫(yī)藥人才隊伍,培育一批中醫(yī)藥領(lǐng)軍人才,打...

關(guān)鍵字: 研討會 節(jié)點 鐘南山

北京2022年8月31日 /美通社/ -- L11級別整機柜交付模式是指機柜在工廠完成PDU及其它機柜配件裝配,完成服務(wù)器上架安裝及交換機上架安裝(可選),并完成柜內(nèi)布線等原本需要在數(shù)據(jù)中心部署現(xiàn)場進行的裝配活動,以整機...

關(guān)鍵字: 數(shù)據(jù)中心 BSP 節(jié)點 交換機

激蕩新片區(qū),成就新夢想 上海2022年8月16日 /美通社/ -- 近日,"激蕩新片區(qū),成就新夢想"臨港新片區(qū)三周年項目集中簽約儀式在上海隆重舉行。上海市經(jīng)信委、市科委、市教委、浦東新區(qū)、奉賢區(qū)有關(guān)...

關(guān)鍵字: 集成電路產(chǎn)業(yè) 雙核 節(jié)點 中國集成電路

(全球TMT2022年8月12日訊)西湖大學聯(lián)手浪潮信息等科技企業(yè)建設(shè)領(lǐng)先的創(chuàng)新平臺與實驗室,為前沿科技研究構(gòu)建數(shù)據(jù)基座,創(chuàng)造影響世界、造福人類的科學知識和技術(shù)。西湖大學工學院采用了浪潮分布式存儲AS13000、AI服...

關(guān)鍵字: 節(jié)點 分布式 讀寫 INFIN

北京2022年8月11日 /美通社/ -- 堅持面向世界科技前沿,不斷向科學技術(shù)廣度和深度進發(fā)是科技工作者的初心和使命。工欲善其事,必先利其器,西湖大學聯(lián)手浪潮信息等科技企業(yè)建設(shè)領(lǐng)先的創(chuàng)新平臺與實驗室,為前沿科技研究構(gòu)建...

關(guān)鍵字: 節(jié)點 分布式 讀寫 數(shù)據(jù)安全

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉