FreeRTOS - 定時器使用注意


1、只有進入定時器守護任務,從定時器命令隊列取出命令,隊列空間才會空出一個可用空間;所有定時器公用一個定時器隊列

 

2、如果使用軟件定時器,在調度器開始前,會自動創建一個定時器守護任務,configTIMER_TASK_STACK_DEPTH和configTIMER_TASK_STACK_DEPTH用於設置這個守護任務的棧大小和任務優先級,各個定時器的回調函數是定時器守護任務調用的函數;哪個定時器定時時間到就執行哪個定時器回調函數,如果某個回調函數調用可能導致阻塞的函數,就會影響其他回調函數的調用周期,所以不建議在回調函數調用可能導致阻塞的函數,並且回調函數執行周期盡可能的短

 

3、定時器守護任務進入准備態的條件:定時器命令隊列非空,或者定時器定時時間到

 

4、因為發送給定時器命令隊列的命令包含時間戳(time stamp,用來記錄調用命令和命令被定時器守護任務處理的時間段),所以一調用xTimerStart(...)函數,定時器就開始計時,而不是等到進入定時器守護任務執行“開始命令”才計時,其他命令效果一樣,比如重啟定時器、改變定時器周期。

 

5、void vApplicationTickHook( void )也可以作為定時器回調函數使用,周期是一個tick period。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM