Freertos----软件定时器
一、软件定时器概念
使用定时器跟使用手机闹钟是类似的:
- 指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期(period)(时间)。
- 指定类型,定时器有两种类型(是否自动重装载):
- 一次性(One-shot timers): 这类定时器启动后,它的回调函数只会被调用一次; 可以手工再次启动它,但是不会自动启动它。我们下面的例子是使用一次性的
- 自动加载定时器(Auto-reload timers ): 这类定时器启动后,时间到之后它会自动启动它; 这使得回调函数被周期性地调用。
- 指定要做什么事,就是指定回调函数(回调函数)
二、软件定时器函数
1 创建
TimerHandle_t xTimerCreate( const char * const pcTimerName,
const TickType_t xTimerPeriodInTicks,
const UBaseType_t uxAutoReload,
void * const pvTimerID,
TimerCallbackFunction_t pxCallbackFunction );
2 删除
BaseType_t xTimerDelete( TimerHandle_t xTimer, TickType_t xTicksToWait );
3 启动/停止
BaseType_t xTimerStart( TimerHandle_t xTimer, TickType_t xTicksToWait );
BaseType_t xTimerStop( TimerHandle_t xTimer, TickType_t xTicksToWait );
4 修改周期
修改定时器的周期时,会使用新的周期重新计算它的超时时间。
BaseType_t xTimerChangePeriod( TimerHandle_t xTimer,
TickType_t xNewPeriod,
TickType_t xTicksToWait );
三、软件定时器实例
我们使用软件定时器实现蜂鸣器发出不一样的声音。
1.首先创建定时器和回调函数
这里的回调函数是关闭定时器,也就是关闭PWM输出。