nrf 軟體定時器

2021-08-27 14:08:18 字數 482 閱讀 2391

52810的軟體定時器建立在乙個rtc的基礎上,使用乙個rtc計時。rtc作為乙個發動機一直在跑。rtc以tick為單位進行中斷觸發,每增加乙個tick就來一次中斷,中斷到來之後就和佇列預期的tick值比較,如果一樣就執行時鐘handler。所有的時鐘都是按照壓入乙個鐘佇列內進行處理。當create乙個時鐘時程式只是建立了乙個時鐘佇列的結點,儲存handler等資訊,此時並沒有入隊。當start時鐘的時候,先計算出使用者預期時鐘執行的tick值。方法就是start是獲取當前rtc的tick值加上預期執行間隔時間tick值,然後根據這個和將新建立的佇列結點插入到時鐘佇列中。時鐘佇列結點的排列順序是依照需要執行的時鐘的前後時間順序進行排列的。離執行時間約近就越靠近佇列頭,當前下乙個需要執行的時鐘結點就是隊頭。而stop時鐘也是將某個特定的時鐘結點刪除。

參考這樣的巨集定義處理,實際上就是如果使用排程器,那麼定時產生的需要處理的事件在定時佇列裡觸發後再放在佇列中有序處理。

這樣就能實現各個事件的有序處理,不會產生錯亂。

設計軟體定時器

在mcu晶元內部,往往硬體定時器的數量是非常有限的,而實際工程中卻需要大量的定時器來輔助完成具體的功能,如果乙個函式占用乙個定時器,那麼顯然不夠用,怎麼辦?思路有2種 1 直接將開源嵌入式作業系統的軟體定時器搬來使用 2 自己設計軟體定時器 這裡我只介紹第二種方法,我們知道,硬體定時器是通過對系統時...

簡單軟體定時器

軟體定時器 在嵌入式開發中,定時器是及其常見的,但考慮到晶元外設資源有限,可以自己寫乙個軟體定時器,應用於對計時不是太嚴格的場合,比如led的閃爍,定時處理某一任務等等。該軟體定時器的原理是基於滴答系統時鐘中斷,在中斷中獲得時間基,該時間基可由使用者自由設定。另外有兩種方式可以實現軟體定時處理功能,...

軟體定時器3

硬體的資源總是緊張的,用這些有限的資源去做更多的事情,這大概就是每個硬體工程師一直在計較的事情了吧。定時器應該是很常用的乙個功能了,很多地方都需要。然而硬定時器就那麼幾個。所以面對一些對時間精度要求沒那麼高的地方,軟定時器就很有用了。簡單描述 所謂軟定時器,不過借助硬定時器產生乙個累積計數值。然後以...