[發明專利]基于硬件計時器的延時方法無效
| 申請號: | 200710037065.3 | 申請日: | 2007-02-01 |
| 公開(公告)號: | CN101236514A | 公開(公告)日: | 2008-08-06 |
| 發明(設計)人: | 楊春妮;臧東明;王懷井 | 申請(專利權)人: | 環達電腦(上海)有限公司 |
| 主分類號: | G06F11/00 | 分類號: | G06F11/00;G06F9/44 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 200436上*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 硬件 計時器 延時 方法 | ||
【技術領域】
本發明涉及一種延時方法,特別是一種基于硬件計時器的延時方法。
【背景技術】
在對操作系統驅動軟件的開發過程中,經常需要對硬件寄存器進行操作,比如對CPU的GPIO端口進行設置等,而驅動軟件對硬件的操作經常需要硬件在指定的時間執行操作指令,所以在軟件開發中需要設置一延時程序來確保硬件能夠正確及時地響應軟件的操作指令。
目前的延時方法大多通過一延時函數來完成,如圖1所示,在該延時函數中,程序通過執行若干次循環語句來達到延時的目的,包括以下步驟:首先程序判斷是否已達到預設的循環次數d,若是則結束,否則執行步驟102(步驟101);程序判斷是否滿足條件A,若滿足則執行步驟103,否則執行步驟104(步驟102);程序執行m次循環后返回步驟101,每次循環執行一調試指令(步驟103);程序執行n次循環后返回步驟101,每次循環執行一調試指令(步驟104)。
在該延時程序中,步驟101中的循環次數d及步驟103中的循環次數m和步驟104中的循環次數n均為程序開發人員預先設定好的數值,可根據等待時間的長短分別設定其為不同的數值,而步驟102中的條件A可為一條件編譯指令。如此即可通過程序控制來達到延時的目的。
然而,采用上述延時函數的方法適用性較差,對于不同的硬件和軟件環境均需對其中的循環次數進行修改;以WinCE嵌入式操作系統為例,由于WinCE操作系統為一多線程操作系統,每個線程的優先級將會直接影響該線程占有CPU的時間,從而影響該延時函數的執行時間,另外,CPU的頻率也會影響到每條軟件指令的執行時間;由此可知,采用如上所述的純軟件方式并不能準確實現延時功能,其延遲時間會出現一定的誤差,從而可能會導致硬件不能正確及時地響應。
【發明內容】
鑒于以上問題,本發明提供一種基于硬件計時器的延時方法,采用軟件與硬件結合的方式,以克服純軟件方式不能準確延時的缺陷。
為實現上述目的,本發明所提供的基于硬件計時器的延時方法,該方法結合硬件計時器與存儲于電腦中的程序實現延時,該計時器為一數值遞減型計時器,該延時方法包括以下步驟:
A.程序讀取硬件計時器中數值寄存器的當前值b;
B.程序比較數值寄存器當前值b與需要要等待的時間a,若b大于a則執行步驟C,否則執行步驟E;
C.程序設定一變量c,并初始化其值為b-a;
D.程序判斷數值寄存器當前值b是否不小于c,若是則重復執行本步驟,否則程序結束,延時完成;
E.程序設定一變量c,并初始化其值為e-(b-a),其中e為該計時器的最大計數值;
F.程序判斷數值寄存器當前值b是否不小于c,若是則重復執行本步驟,否則繼續執行步驟G;
G.程序判斷數值寄存器當前值b是否大于c,若是則重復執行本步驟,否則程序結束,延時完成。
另外,本發明所提供的基于硬件計時器的延時方法,該方法結合硬件計時器與存儲于電腦中的程序實現延時,該計時器為一數值遞增型計時器,該延時方法包括以下步驟:
A.程序讀取硬件計時器中數值寄存器的當前值b;
B.程序比較數值寄存器當前值b與需要要等待的時間a之和是否大于程序最大計數值e,若是則執行步驟E,否則執行步驟C;
C.程序設定一變量c,并初始化其值為b+a;
D.程序判斷數值寄存器當前值b是否不大于c,若是則重復執行本步驟,否則程序結束,延時完成;
E.程序設定一變量c,并初始化其值為(b+a)-e,其中e為該計時器的最大計數值;
F.程序判斷數值寄存器當前值b是否大于c,若是則重復執行本步驟,否則繼續執行步驟G;
G.程序判斷數值寄存器當前值b是否不小于c,若是則重復執行本步驟,否則程序結束,延時完成。
與現有技術相比,本發明所提供的延時方法采用軟件控制與硬件計時器結合的方式,依靠硬件計時的精確性及軟件控制的靈活性達到精確延時的目的,延時更為準確,且本發明所提供的延時方法在軟件或硬件環境發性改時其延時精度并不會受到較大的影響,比純軟件實現的延時方法具有更強的通用性。
【附圖說明】
圖1為現有延時方法流程圖;
圖2為本發明所提供的基于硬件計時器的延時方法第一實施例的流程圖;
圖3為本發明所提供的基于硬件計時器的延時方法第二實施例的流程圖。
【具體實施方式】
為對本發明的工作流程有更進一步的了解,以下結合附圖進行詳細說明。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于環達電腦(上海)有限公司,未經環達電腦(上海)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710037065.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種普通低碳低硅熱軋鋼帶及其制造方法
- 下一篇:一種傳輸器的方法及裝置





