RTOS 时间管理篇-软定时器 xTimer 处理周期性定时事件

RTOS 时间管理篇-软定时器 xTimer 处理周期性定时事件

概述

上一节讲述了 RTOS 中软定时器 xTimer 的实现原理、使用方法以及定时准确度等相关问题。

如前所述,FreeRTOS 提供的软件定时器支持单次模式和周期模式,单次模式和周期模式的定时事件到之后都会调用软件定时器的回调函数。周期模式的定时事件每隔一断时间就触发一次一段代码的执行。如下图的周期为 3 的 Timer1,若为周期性软定时器,在 t1 启动后,会在 t4、t7、t11 分别被执行回调,直到该定时器被停止或者销毁。

在这里插入图片描述

周期定时模式的典型使用场景

周期定时事件适合完成什么?

1)状态定时再查询。

如前所述,RTOS 是事件驱动模型,一些任务需要得到某些信号或者数据才能继续运行。但是有时一些信号没有发送者,需要信号的一方只能主动去查询一些信息才知道当前关注对象的信息。查询过程是一个需要持续关注信息的过程,通常是个无限循环的过程,但是 RTOS 的设计原则并不允许这种无限执行的过程,因为这种设计完全剥夺了低优先级任务的可执行权。解决这种需求的方法是“用定时反复查询代替连续查询(用离散代替连续)”,在每个定时到来之前,系统可以执行其他任务。

猜你喜欢

转载自blog.csdn.net/wangyx1234/article/details/128377539