目录
定时器的句柄定义:
#define RTOS_TIME_HANDLE TimerHandle_t
同样支持2种方式的定时器
#define RTOS_TIMER_ONE_SHOT pdFALSE
#define RTOS_TIMER_PERIODIC pdTRUE
1. 创建定时器
#define rtosTimerCreate( \
handle, /*Timer Handle*/ \
name, /*Timer Name*/ \
timeout, /*timeout function*/ \
parameter, /*the parameter of function*/ \
time, /*the tick of timer*/ \
flag /*the flag of timer*/ \
) \
{ \
handle = xTimerCreate(name, time, \
flag, parameter, timeout); \
}
参数parameter在FreeRTOS中定义为软件定时器 ID,其实和RT Thread作用差不多,都是作为溢出函数的参数传入。
2. 启动定时器
#define rtosTimerStart( \
handle \
) \
{ \
xTimerStart(handle, RTOS_WAIT_FOREVER); \
}
FreeRTOS的启动函数多一个参数,这个参数是指成功启动定时器前的最大等待时间,为了保持一致,这里默认一直等待,即值对应portMAX_DELAY(注意,如果任务调度没有启动,这个参数无效)。
3. 停止定时器
#define rtosTimerStop( \
handle \
) \
{ \
xTimerStop(handle, RTOS_WAIT_FOREVER); \
}
停止和开始一样,多一个时间参数。