在使用FreeRTOS的过程中,我们通常会在一个任务函数中使用延时函数对这个任务延时,当执行延时函数的时候就会进行任务切换,并且此任务就会进入阻塞太,直到延时完成,任务重新进入就绪态。延时函数舒属于FreeRTOS的时间管理。

0x00 FreeRTOS的延时函数

FreeRTOS中,延时函数相对模式和绝对模式,相对模式是使用vTaskDelay()函数,绝对模式是使用vTaskDelayUntil函数。
vTaskDelay要将INCLUDE_vTaskDelay配置为1,单位是ms

void vTaskDelay( const TickType_t xTicksToDelay );
//vTaskDelay(500) 延时500ms

使用vTaskDelayUntil要将INCLUDE_vTaskDelayUntil配置为1,那些需要按照一定的频率运行的任务可以使用vTaskDelayUntil

void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement )
  • pxPreviousWakeTime:上一次任务延时结束被唤醒的时间点
  • xTimeIncrement :任务需要延时的时间节拍数
 // Perform an action every 10 ticks.void vTaskFunction( void * pvParameters ){TickType_t xLastWakeTime;const TickType_t xFrequency = 10;// Initialise the xLastWakeTime variable with the current time.xLastWakeTime = xTaskGetTickCount ();for( ;; ){// Wait for the next cycle.vTaskDelayUntil( &xLastWakeTime, xFrequency );// Perform action here.}}

0x01 FreeRTOS系统时钟节拍

xTickCount就是FreeRTOS的系统时钟节拍计数器,每个滴答时钟中断中xTickCount会加1

FreeRTOS时间管理相关推荐

  1. 【STM32】FreeRTOS 时间管理

    文章目录 FreeRTOS 延时函数 函数 vTaskDelay() 函数 prvAddCurrentTaskToDelayList() 函数 vTaskDelayUntil() FreeRTOS 系 ...

  2. freeRTOS 时间管理

    1. 相对时间延时vTaskDelay -> prvAddCurrentTaskToDelayedList(函数分析之后,有步骤解析)为什么使用两个延时列表? 2. 绝对时间延时PreTimeW ...

  3. 13 freertos系统节拍和时间管理

    十三 FreeRTOS 的时间相关函数 FreeRTOS 时间相关的函数主要有以下 4 个: vTaskDelay () vTaskDelayUntil () xTaskGetTickCount() ...

  4. 41 freertos内存管理试验 1

    四十一.freertos内存管理试验 1 /** *************************************************************************** ...

  5. java redis管理_优雅时间管理Java轻松做到,想学么?

    原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...

  6. linux基础篇-02,linux时间管理date hwclock cal 简述

    ################################################ 时间管理 1,date:系统时钟 查看当前系统时间 [root@Jameszhan etc]# dat ...

  7. 出色管理者的时间管理

    出色管理者的时间管理 不少管理者都有这样的感慨:"忙了一天,也不知道忙了什么,时间还不够用."其实,只要有效地运用时间,就可以提高工作效率,在相同的时间里做更多的事,而且做得更好, ...

  8. 你离时间管理大师,就差这副眼镜了

    鱼羊 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你离时间管理大师,只差这副黑科技眼镜了. 只要249美元--1702元人民币. 最近,这款名为Specs的智能眼镜,出现在了众筹网站 ...

  9. 番茄工作法:番茄时间管理方法与番茄工作法软件图解提高工作效率

    番茄工作法 番茄工作法(又称为:番茄时间管理方法)是简单易行的GTD时间管理方法.番茄工作法是选择一个待办事项任务,将番茄时间设为25分钟,在此期间专注工作.不允许做与该待办事项任务无关的任何事情,直 ...

最新文章

  1. qhfl-6 购物车
  2. java项目合同制没做完扣钱吗_程序员接私活,怎样防止做完不给钱?
  3. java程序里繁体字显示为方块_网页 俄罗斯方块
  4. 数据结构之顺序表(二)
  5. C++ 二叉搜索树的实现
  6. 计算机原理课 如何在中小学课堂中变成有趣,在课堂中如何发挥电教辅助教学优势...
  7. Codeforces Gym 101142 C. CodeCoder vs TopForces(思维+图论)
  8. android解析html新闻的方法,Android使用Jsoup解析Html表格的方法
  9. Visio使用技巧总结
  10. html excel零不显示,Excel中把0显示为空白的三种解决方法
  11. [随笔]_ELVE_git命令复习
  12. Android APP LOGO尺寸
  13. 我的世界服务器修改速度,我的世界速度提升指令是什么_我的世界速度提升指令介绍_玩游戏网...
  14. JEM software ticket45:Console output error of nQP when LCU level rate control is enabled
  15. Win7 TAP-Windows Adapter V9提示Windows 要求已数字签名的驱动程序
  16. vue中获取获取当前城市地址_Vue中获取当前定位城市名
  17. obspy中文教程(五)
  18. 748. 数组的右下半部分
  19. ASM字节码编程 | JavaAgent+ASM字节码插桩采集方法名称以及入参和出参结果并记录方法耗时
  20. python基础概念之-打印一个边长为n的正方形

热门文章

  1. VSCode设置ESLint语法检查
  2. webpack配置说明
  3. 初学者Web介绍一些前端开发中的基本概念用到的技术
  4. JavaScript DOM介绍
  5. HDU 5691 Sitting in Line 状压dp
  6. PIC18F452之1602自定义字符
  7. 心得 如何优雅地跨线程修改主线程窗口控件
  8. java秒杀时间与服务器时间_Javascript实现秒杀倒计时(时间与服务器时间同步)...
  9. php7如何安装swoole,PHP7如何安装Swoole?
  10. php如何逐条读取数据库,php从数据库中读取特定的行(实例)