FreeRTOS 软件定时器

系统节拍配置宏 configTICK_RATE_HZ, 即1S能跳动多少下,

软件定时器的运作机制.
FreeRTOS 采用两个定时器列表维护软件定时器, pxCurrentTimerList 与 pxOverflowTimerList是列表指针, 在初始化的时候分别指向 xActiveTimerList1 与 xActiveTimerList2

pxCurrentTimerList: 系统将新创建的定时器以超时时间升序的方式插到 此链表中, 系统在定时任务中扫描 此链表的第一个定时器查看是否已经超时, 如果已经超时则调用软件定时器的回调函数, 否则将定时器任务挂起, 因为第一个定时任务还没超时, 后面的定时任务就不会超时,

pxOverflowTimerList 列表是在软件定时器溢出的时候使用,作用与pxCurrentTimerList

软件定时器创建函数
xTimerCreate() 动态分配,
xTimeCreateStatic() 静态分配的,
软件定时器在创建成功后是处于休眠状态, 可以使用

xTimerStart()、xTimerReset()、
xTimerStartFromISR() 、 xTimerResetFromISR() 、 xTimerChangePeriod() 和
xTimerChangePeriodFromISR()这些函数将其状态转换为活跃态。

软件定时器启动函数
xTimerStart() 可以让处于休眠的定时器开始工作.
xTimerStartFromISR() 启动软件定时器, 在中断中

软件定时器停止函数
xTimerStop() 要使用该函数 ,就需要把 configUSE_TIMERS 宏定义为1;

xTimerStopFromISR() 这是停止定时器的中断版本

软件定时器任务
软件定时器任务 是在 系统开始调度的时候 vTaskStartScheduler() 创建的的.前提是 将 configUSE_TIMERS 开启
定时器任务的优先级 由 configTIMER_TASK_PRIORITY 这个宏来决定

软件定时器删除函数 xTimerDelete()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值