一種高效率的定時器管理模塊設(shè)計(jì)
2定時器管理模塊的實(shí)現(xiàn)
2.1 數(shù)據(jù)結(jié)構(gòu)和函數(shù)接口
定時器管理模塊使用的相關(guān)數(shù)據(jù)結(jié)構(gòu)定義如下:本文引用地址:http://butianyuan.cn/article/173423.htm
字段state保存了定時器節(jié)點(diǎn)的狀態(tài),可能取值為空閑(T_FREE)、使用(T_INLISE)或溢出(T_OVER-FLOW)。
字段Count保存了定時器節(jié)點(diǎn)的定時值,最大取值為65 535。如果設(shè)置硬件定時器中斷為10 ms,則軟件定時器最大定時約為655 s,可以滿足大多數(shù)應(yīng)用需要。
字段msg指向定時器的用戶消息。在啟動定時器時,指向消息的指針被保存在此字段。當(dāng)定時時間結(jié)束后,中斷處理函數(shù)會自動發(fā)出這個消息以通知用戶任務(wù)。
由于數(shù)組的下標(biāo)是唯一的,可作為識別節(jié)點(diǎn)的唯一ID號。下文中提到的節(jié)點(diǎn)ID號均表示節(jié)點(diǎn)在數(shù)組中的下標(biāo)。
MAX_TIMER_NUM表示系統(tǒng)允許的最大定時器數(shù),其值取決于具體應(yīng)用需要。
本模塊提供的關(guān)鍵接口函數(shù)如下:
評論