软件定时器
软件定时器
软件定时器简介
定时器,是指从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可以自定义定时器的周期与频率。
FreeRTOS 操作系统提供软件定时器功能,软件定时器的使用相当于扩展了定时器的数量,允许创建更多的定时业务。FreeRTOS 软件定时器功能上支持:
●裁剪:能通过宏关闭软件定时器功能。
●软件定时器创建。
●软件定时器启动。
●软件定时器停止。
●软件定时器复位。
●软件定时器删除。
1.1 软件定时器应用场景
1.2 软件定时器的精度,没有硬件高,还可能被中断所打断,使用于精度不高的任务
使用软件定时器时候要注意以下几点:
●软件定时器的回调函数中应快进快出,绝对不允许使用任何可能引软件定时器起任务挂起或者阻塞的 API 接口,在回调函数中也绝对不允许出现死循环。
●软件定时器使用了系统的一个队列和一个任务资源,软件定时器任务的优先级默认为 configTIMER_TASK_PRIORITY,为了更好响应,该优先级应设置为所有任务中最高的优先级。
●创建单次软件定时器,该定时器超时执行完回调函数后,系统会自动删除该软件定时器,并回收资源。
●定时器任务的堆栈大小默认为 configTIMER_TASK_STACK_DEPTH 个字节。
软件定时器控制块
常用软件定时器API函数
软件定时器创建函数 xTimerCreate()
软件定时器启动函数
xTimerStart()
xTimerStartFromISR()
xTimerStop()
xTimerStopFromISR()
软件定时器删除函数 xTimerDelete()