1 软定时器的原理与创建
1.1 问题概述
在实际应用中,常常需要周期性或者在指定时间做一件事情:
- 周期性:在指定的延时开始做某件事情,然后周期性重复执行。
- 一次性:在指定的延时开始后做某件事情,执行一次后立即结束。

显然,硬件定时器有限,而这种需求可能有很多个。单纯依赖硬件定时器不能满足需求。也许,可以使用任务+tTaskDelay()。但是,如果每种需求都使用一个任务的话,导致任务很多,资源开销太大。

能否只用一个任务满足所有需求?
1.2 设计原理
每种需求的所有信息,保存到软定时器结构。

这时又出现了一个问题:如果定时器任务可能被更高优先级的任务抢占CPU运行,导致刷新定时器列表的时间滞后。
为了保证时间确定,我们可以增加一条在时钟节拍中断处理的定时器列表。
总体结构如下:

1.3 设计实现
定义

最低0.47元/天 解锁文章
1079

被折叠的 条评论
为什么被折叠?



