介绍两个定时器任务如何通过定时器 handle 共用一个回调函数。
1、头文件声明和函数定义
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "supporting_functions.h"
#define mainONE_SHOT_TIMER_PERIOD ( pdMS_TO_TICKS( 3333UL ) )
#define mainAUTO_RELOAD_TIMER_PERIOD ( pdMS_TO_TICKS( 500UL ) )
// 定时器共用回调函数
static void prvTimerCallback( TimerHandle_t xTimer );
// 定时器 handle 定义
static TimerHandle_t xAutoReloadTimer, xOneShotTimer;
2、启动定时任务
int main( void )
{
BaseType_t xTimer1Started, xTimer2Started;
// 定义 one-shot 定时任务
xOneShotTimer = xTimerCreate( "OneShot",
mainONE_SHOT_TIMER_PERIOD,
pdFALSE,