一種高效率的定時(shí)器管理模塊設計
2.4定時(shí)器的刪除
在目標定時(shí)器到期之前,由于某種原因用戶(hù)可能會(huì )要求取消定時(shí)器。如重發(fā)定時(shí)器,用戶(hù)在發(fā)送數據幀后啟動(dòng)該定時(shí)器,并等待對方返回響應幀。如果在定時(shí)時(shí)間結束時(shí)沒(méi)有收到響應幀,用戶(hù)就需要重發(fā)原數據幀;如果在定時(shí)時(shí)間結束之前收到響應幀,用戶(hù)就需要馬上取消該定時(shí)器,然后進(jìn)行下一次通信過(guò)程。
刪除定時(shí)器函數以定時(shí)器節點(diǎn)ID號作為輸入參數,將定時(shí)器節點(diǎn)設為空閑狀態(tài),并根據需要更新輔助定時(shí)器,流程如圖3所示。
2.5定時(shí)器的驅動(dòng)
軟件定時(shí)器的驅動(dòng)由硬件定時(shí)器提供。在硬件定時(shí)器中斷中,首先將輔助定時(shí)器的值減1。如果輔助定時(shí)器值為O,則表示定時(shí)值最小的定時(shí)器已經(jīng)超時(shí),應將對應的消息發(fā)送給用戶(hù)任務(wù),將節點(diǎn)置為空閑狀態(tài),并重新計算其他節點(diǎn)的定時(shí)值,同時(shí)查找定時(shí)值最小的節點(diǎn),更新輔助定時(shí)器。驅動(dòng)流程如圖4所示。
關(guān)鍵代碼如下:
結語(yǔ)
本文設計的定時(shí)器管理器模塊,具有邏輯簡(jiǎn)單、效率高的特點(diǎn),在實(shí)驗室自主研發(fā)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )中得到應用。在共包含30個(gè)節點(diǎn)的溫、濕、光信息采集系統中,使用該定時(shí)器管理模塊的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )協(xié)議運行高效、穩定。
評論