專利名稱:利用線程的定時器產(chǎn)生方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)利用線程的定時器產(chǎn)生方法相關(guān)的發(fā)明,特別是替代不正確的定時器,利用線程,使其可以產(chǎn)生個別定時器,并使用的利用線程的定時器產(chǎn)生方法相關(guān)的發(fā)明。
背景技術(shù):
嵌入式終端機(jī)裝載著自我運(yùn)營體制,運(yùn)營體制提供定時器服務(wù),在應(yīng)用程序利用定時器,過一定時間后接收定時器溢出(Overflow)信息,以相隔一定時間運(yùn)行動作或過特定時間后,運(yùn)行動作。
下面將參照附圖對嵌入式終端機(jī)的利用定時器服務(wù),運(yùn)行特定操作的動作進(jìn)行說明。
圖1是現(xiàn)有定時器產(chǎn)生方法的動作流程圖。如果應(yīng)用程序呼叫定時器服務(wù),就運(yùn)行定時器的例行程序(Routine),從硬件計(jì)時器讀出現(xiàn)在計(jì)時器的值,判斷是否發(fā)生計(jì)時器溢出。判斷結(jié)果,若是溢出,就把定時器溢出信息傳送給應(yīng)用程序。應(yīng)用程序處理定時器溢出信息,判斷特定操作的運(yùn)行條件,如果能得到滿足,就停止定時器的動作。
定時器服務(wù)是產(chǎn)生動作運(yùn)行條件,但因運(yùn)營體制支持的特性,其動作具有一定限度。下面將對此進(jìn)行說明。
定時器服務(wù)是以硬件定時器動作間隔產(chǎn)生定時器溢出信息,因此設(shè)定在定時器的時間是替換為硬件定時器動作間隔的倍數(shù),其定時器做出動作。另外,因優(yōu)先順序較低,如果其它信息處理操作較多,定時器就不會在特定時間后做出動作,而是延遲到需要信息處理的時間后,定時器才可以做出動作。
因這樣的原因,根據(jù)用于系統(tǒng)的CPU(中央處理器)的計(jì)算能力,可能發(fā)生定時器的正確度不一致,如果同時使用兩個定時器,定時器之間產(chǎn)生沖突等問題。
發(fā)明內(nèi)容于是,本發(fā)明是為解決上述問題而開發(fā),其目的在于提供這樣的利用線程的定時器產(chǎn)生方法,即,不使用定時器,個別產(chǎn)生線程,計(jì)算轉(zhuǎn)差時間,并判斷定時器時間,以此可以運(yùn)行動作。
為了實(shí)現(xiàn)上述目的,本發(fā)明是以如下步驟構(gòu)成為特點(diǎn)在應(yīng)用程序,初始化線程定時器,并產(chǎn)生的步驟;在上述線程定時器,開始動作,并在轉(zhuǎn)差時間內(nèi),停止動作的步驟;過轉(zhuǎn)差時間后,再次從上述線程定時器開始動作,增加計(jì)數(shù),計(jì)數(shù)乘以轉(zhuǎn)差時間,以此計(jì)算經(jīng)過時間的步驟;在上述線程定時器,比較上述經(jīng)過時間和定時器活動產(chǎn)生時間,決定是否產(chǎn)生定時器活動的步驟;如果產(chǎn)生上述定時器的活動,就從應(yīng)用程序接收上述定時器活動的傳送,并處理的步驟。
如上所述,本發(fā)明具有這樣的效果,即利用線程,發(fā)生定時器活動,運(yùn)行特定動作,以此提高定時器活動發(fā)生時間的正確度,也可以防止同時運(yùn)行多個定時器導(dǎo)致的定時器間的沖突。
圖1是現(xiàn)有定時器產(chǎn)生方法的動作流程圖。
圖2是利用本發(fā)明線程的定時器產(chǎn)生方法的動作流程圖。
具體實(shí)施方式下面將參照附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。
過一定時間后,需要發(fā)生任意活動或運(yùn)行特定動作時,本發(fā)明不是使用運(yùn)營體制提供的定時器服務(wù),而是產(chǎn)生個別線程,與定時器那樣動作,使用這些。
參照
應(yīng)用程序利用線程的定時器產(chǎn)生方法動作的例子。在這里,如果在產(chǎn)生的線程,過定時器活動發(fā)生時間,就把發(fā)生定時器活動的例行程序(Routine)假設(shè)為線程定時器。
線程定時器以提前設(shè)定的時間內(nèi)運(yùn)行轉(zhuǎn)差,過轉(zhuǎn)差時間后,增加計(jì)數(shù),并計(jì)算經(jīng)過時間,決定發(fā)生定時器活動與否。因此,應(yīng)用程序產(chǎn)生線程定時器時,提前設(shè)定轉(zhuǎn)差時間和定時器活動發(fā)生時間。
圖2是利用本發(fā)明線程的定時器產(chǎn)生方法的動作流程圖。如圖所示,以如下步驟構(gòu)成如果在應(yīng)用程序開始線程定時器,就以轉(zhuǎn)差時間內(nèi)停止動作的步驟、如果上述線程定時器重新開始動作,就增加計(jì)數(shù)count,并把計(jì)數(shù)乘以轉(zhuǎn)差時間N,計(jì)算經(jīng)過時間的步驟、比較上述經(jīng)過時間和定時產(chǎn)生時間,決定是否產(chǎn)生定時器活動的步驟、如果發(fā)生上述定時器活動,就從應(yīng)用程序接收上述定時器活動的傳送,并進(jìn)行處理,以此判斷滿足線程定時器停止條件與否,若能得到滿足,就停止線程定時器的步驟。
如果應(yīng)用程序開始線程定時器,就不會在轉(zhuǎn)差時間內(nèi)做出動作,而是重新開始動作后,增加計(jì)數(shù),并把計(jì)數(shù)乘以轉(zhuǎn)差時間,計(jì)算經(jīng)過時間。
比較經(jīng)過時間和定時器產(chǎn)生時間,決定產(chǎn)生定時器活動與否。比如,轉(zhuǎn)差時間為n毫秒,計(jì)數(shù)為1000/n,定時器活動產(chǎn)生時間就達(dá)到1秒。
過1秒后,就發(fā)生定時器活動,并有定時器活動傳送到應(yīng)用程序。應(yīng)用程序處理定時器活動,判斷是否滿足線程定時器停止條件,若能滿足,就停止線程定時器。
作為停止線程定時器的方法,可以決定判斷計(jì)數(shù)增加和運(yùn)行停止動作與否的運(yùn)行條件,使用這些。如果滿足運(yùn)行條件,就動作線程定時器,否則停止。運(yùn)行條件的判斷是追加在線程定時器的初期動作區(qū)間。
因此,線程定時器具有變數(shù)的轉(zhuǎn)差時間、定時器活動發(fā)生時間、運(yùn)行條件。在這里,運(yùn)行條件是決定線程定時器的動作/停止,定時器活動發(fā)生時間是決定何時產(chǎn)生定時器的活動,轉(zhuǎn)差時間是停止線程定時器的時間。
與上述定時器活動發(fā)生動作不同,定時器活動發(fā)生時間除以轉(zhuǎn)差時間,以此決定標(biāo)準(zhǔn)計(jì)數(shù)。說明利用上述標(biāo)準(zhǔn)計(jì)數(shù)發(fā)生定時器活動的動作如下。
線程定時器是在初始化動作,定時器活動發(fā)生時間除以轉(zhuǎn)差時間,以此決定標(biāo)準(zhǔn)計(jì)數(shù)。另外,如果應(yīng)用程序開始線程定時器,轉(zhuǎn)差時間內(nèi)停止動作后,增加計(jì)數(shù),與上述標(biāo)準(zhǔn)計(jì)數(shù)比較,判斷是否屬于其以上。
如果上述增加的計(jì)數(shù)為標(biāo)準(zhǔn)計(jì)數(shù)以上,就發(fā)生定時器活動,傳送給應(yīng)用程序。之后,其動作一致。
權(quán)利要求
1.利用線程的定時器產(chǎn)生方法,包括在應(yīng)用程序,初始化線程定時器,并產(chǎn)生的步驟;在上述線程定時器,開始動作,并以轉(zhuǎn)差時間內(nèi)停止動作的步驟;過轉(zhuǎn)差時間后,再次從上述線程定時器開始動作,增加計(jì)數(shù),計(jì)數(shù)乘以轉(zhuǎn)差時間,以此計(jì)算經(jīng)過時間的步驟;在上述線程定時器,比較上述經(jīng)過時間和定時器活動產(chǎn)生時間,決定是否產(chǎn)生定時器活動的步驟;如果產(chǎn)生上述定時器活動,就從應(yīng)用程序接受上述定時器活動的傳送,并進(jìn)行處理的步驟。
2.如權(quán)利要求項(xiàng)1所述的利用線程的定時器產(chǎn)生方法,其特征在于,上述線程定時器的初始化是使其可以設(shè)定轉(zhuǎn)差時間、定時器活動發(fā)生時間、運(yùn)行條件。
3.如權(quán)利要求項(xiàng)1所述的利用線程的定時器產(chǎn)生方法,其特征在于,上述線程定時器的動作判斷是,如果運(yùn)行條件得到滿足,就動作線程定時器,否則停止線程定時器。
4.如權(quán)利要求項(xiàng)1所述的利用線程的定時器產(chǎn)生方法,其特征在于,上述定時器活動的產(chǎn)生是活動發(fā)生時間除以轉(zhuǎn)差時間,以此計(jì)算標(biāo)準(zhǔn)計(jì)數(shù)的步驟和比較每次經(jīng)過轉(zhuǎn)差時間后增加的計(jì)數(shù)和上述標(biāo)準(zhǔn)計(jì)數(shù),如果增加的計(jì)數(shù)屬于其以上,就發(fā)生定時器活動的步驟。
全文摘要
本發(fā)明是有關(guān)利用線程的定時器產(chǎn)生方法的發(fā)明。本發(fā)明以如下步驟構(gòu)成,可以提高定時器活動產(chǎn)生時間的正確度,也可以防止同時使用多個定時器而發(fā)生的定時器間的沖突。即,在應(yīng)用程序,初始化線程定時器,并產(chǎn)生的步驟、在上述線程定時器,開始動作,并在轉(zhuǎn)差時間內(nèi),停止動作的步驟、過轉(zhuǎn)差時間后,再次從上述線程定時器開始動作,增加計(jì)數(shù),計(jì)數(shù)乘以轉(zhuǎn)差時間,計(jì)算經(jīng)過時間的步驟、在上述線程定時器,比較上述經(jīng)過時間和定時器活動產(chǎn)生時間,決定是否產(chǎn)生定時器活動的步驟、如果產(chǎn)生上述定時器的活動,就從應(yīng)用程序接受上述定時器活動的傳送,并處理的步驟。
文檔編號G06F9/46GK1811715SQ200510033068
公開日2006年8月2日 申請日期2005年1月28日 優(yōu)先權(quán)日2005年1月28日
發(fā)明者樸河泳 申請人:樂金電子(惠州)有限公司