FreeRtos 时间管理(二)

本文详细介绍了FreeRTOS中的vTaskDelayUntil函数用法,强调其如何实现任务的绝对延时,确保延时时间不受函数执行影响。通过代码示例和变量关系解析,帮助理解时间管理机制。
摘要由CSDN通过智能技术生成

本篇主要介绍FreeRtos的绝对延时函数vTaskDelayUntil

一、vTaskDelayUntil函数的用法

参数分析:[param 1] pxPreviousWakeTime:代表上一次唤醒的时间

                   [param 2]xTimeIncrement:要delay的时钟节拍数

用法:

static TickType_t increment = pdMS_TO_TICKS( 50 );
wakeTime = xTaskGetTickCount(); //获取当前的系统节拍值
for( ;; )
{

    fun1();
    fun2();
    fun3();
    xxxx
    //调用函数vTaskDelayUntil 进行延时
    vTaskDelayUntil( &wakeTime, increment);//wakeTime这个变量会在函数内部自动更新
}

二、vTaskDelayUntil绝对延时绝对在哪里了

如上图,绝对延时的绝对的意思就是1+2(函数主体+delay)的时间是个固定值 ,即回屏蔽掉函数主体运行时间的干扰

三、代码分析

prvAddCurrentTaskToDelayedList 和 xTaskResumeAll在上一篇中FreeRtos时间管理(一)已经分析过了,本篇不再分析

 

几个变量之间的关系

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KiranWang

一起努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值