创建一个软件定时器,新创建的软件定时器处于休眠状态,也就是未运行的。
TimerHandle_t xTimerCreate( const char * const pcTimerName,TickType_t xTimerPeriodInTicks,UBaseType_t uxAutoReload,void * pvTimerID,TimerCallbackFunction_t pxCallbackFunction );
pcTimerName | 软件定时器名字,名字是一串字符串,用于调试使用。 |
---|---|
xTimerPeriodInTicks | 软件定时器的定时器周期, 单位是时钟节拍数。可以借助portTICK_PERIOD_MS 将 ms 单位转换为时钟节拍数。 |
uxAutoReload | 设置定时器模式,当此参数为 pdTRUE的时候表示创建的是周期定时器。如果为 pdFALSE 的话表示创建的是单次定时器。 |
pvTimerID | 定时器 ID 号,一般情况下每个定时器都有一个回调函数,当定时器定时周期到了以后就会执行这个回调函数。但是 FreeRTOS 也支持多个定时器共用同一个回调函数,在回调函数中根据定时器的 ID 号来处理不同的定时器。 |
pxCallbackFunction | 定时器回调函数,当定时器定时周期到了以后就会调用这个函数。 |
return | NULL:软件定时器创建失败。 其他值:创建成功的软件定时器句柄。 |
启动任务定时器
BaseType_t xTimerStart( TimerHandle_t xTimer, TickType_t xTicksToWait );
xTimer | 定时器句柄 |
---|---|
xTicksToWait | 成功启动定时器前的最大等待时间设置,单位系统时钟节拍 |
return | pdPASS:软件定时器开启成功 pdFAIL:软件定时器开启失败 |
停止一个软件定时器
BaseType_t xTimerStop( TimerHandle_t xTimer, TickType_t xTicksToWait );
xTimer | 要停止的软件定时器的句柄。 |
---|---|
xTicksToWait | 设置阻塞时间 |
return | pdPASS:软件定时器停止成功 pdFAIL软件定时器停止失败 |