[FreeRTOS]軟件定時器


FreeRTOS 定時器基本使用

軟件定時器本質上是一個周期性的task

配置

使用軟件定時器需要在FreeRTOSConfig.h先配置, 需要注意的是優先級和堆棧

#define configUSE_TIMERS             1
#define configTIMER_TASK_PRIORITY    (1)
#define configTIMER_QUEUE_LENGTH     10
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )

創建定時器

  • 函數原型
xTimerHandle xTimerCreate( 	const signed char *pcTimerName,
                            portTickType xTimerPeriodInTicks,
                            unsigned portBASE_TYPE uxAutoReload,
                            void * pvTimerID,
                            tmrTIMER_CALLBACK pxCallbackFunction );
- pcTimerName           : 任務名
- xTimerPeriodInTicks   : 定時周期
- uxAutoReload          : pdTRUE, 自動重載; pdFALSE, 一次性
- pvTimerID             :
- pxCallbackFunction    : 回調函數
  • 使用
xTimerMain = xTimerCreate("TimerMain", (1000*30 / portTICK_RATE_MS), pdTRUE, (void *)0, MainCallback);`

啟動定時器

#define xTimerStart( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) )
  • 使用
xTimerStart( xTimerMain, 0 );


免責聲明!

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



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