社区
单片机/工控
帖子详情
freeRTOS如何实现周期任务
sun2006_20
2018-06-11 03:02:54
FreeRTOS中任务如何实现不同任务,周期调用。比如。系统周期1ms。如果想让TASK_A 周期5ms TASK_B 10ms TASK_C 20ms 如何实现。
1.用TaskDelay()这样的系统函数,科学吗?
...全文
2052
5
打赏
收藏
freeRTOS如何实现周期任务
FreeRTOS中任务如何实现不同任务,周期调用。比如。系统周期1ms。如果想让TASK_A 周期5ms TASK_B 10ms TASK_C 20ms 如何实现。 1.用TaskDelay()这样的系统函数,科学吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Votangroom
2018-07-02
打赏
举报
回复
不考虑任务自身运行时间(任务运行时间一般都挺短的吧,微秒级的吧),我觉得可以用TaskDelay()
dceacho
2018-06-12
打赏
举报
回复
TaskDelay()就够了, TaskDelay(5-2); TaskDelay(10-2); TaskDelay(20-2);
sun2006_20
2018-06-11
打赏
举报
回复
5ms执行一次。 任务体 本身是一个 循环。会1ms调用一次,这是系统操作系统实现的。 for(;;) { // } 想 在这个函数体内部 搞一个 5ms 或者10ms 或者20ms的 代码 如何控制。
dceacho
2018-06-11
打赏
举报
回复
我是不是理解错了,你是说A 5MS执行一次而不是一次执行5MS?
dceacho
2018-06-11
打赏
举报
回复
我记得是有自定义时间片功能的
1.如果任务里不是耗时操作的话,是科学的
如果是耗时操作,而且任务周期精度要求高,得考虑当3个任务都READY时
A耗时5MS,到B时,B已经在原周期上延时了5MS
FreeRTOS
实时操作系统+MODBUS主从通信(使用信号量唤醒MODBUS
任务
,使用互斥信号量共享数据).zip
6个
任务
1、
任务
1控制闪烁3个指示灯,为
周期
性
任务
2、
任务
2控制闪烁2个指示灯,为
周期
性
任务
3、
任务
3 采集2路DI,为
周期
性
任务
,对本
任务
采集的2路DI互斥保护 4、
任务
4 采集2路DI,为
周期
性
任务
,对本
任务
采集的2路DI互斥保护 5、
任务
5 每隔1秒读取一次SD2405时钟芯片的时间(年、月、日、时、分、秒),对本
任务
采集的钟芯片的时间(年、月、日、时、分、秒)互斥保护 6、
任务
6 MODBUS
任务
, 串口中断服务程序中收到上位机的MODBUS主站请求命令后,通过释放信号量唤醒MODBUS
任务
。 该
任务
将
任务
3的2路DI,
任务
4的2路DI,
任务
5的SD2405时钟芯片时间(年、月、日、时、分、秒)发送给上位机。 要想使用互斥信号量,要在
FreeRTOS
Config.h 文件中使能宏定义: #define configUSE_MUTEXES 1
freertos
线程池
在stmF4上
实现
了线程池, 工作队列, 延时队列,
周期
性
任务
,延时
任务
你无需为工程创建多少个临时线程而烦恼
成熟量产扫地机代码 STM32
FreeRTos
功能完整 代码注释清晰IIC、PWM、SPI、多路ADC与DMA、IAP
知名大厂扫地机代码STM32
FreeRTos
功能完整 硬件驱动包含陀螺仪姿态传感器bmi160、电源管理bq24733等。 软件驱动包括IIC、PWM、SPI、多路ADC与DMA、编码器输入捕获、外部中断、通信协议、IAP升级、PID、
freertos
操作系统等。代码注释清晰、代码规范好、每个函数必有输入输出范围参数解释。 1.多线程支持:STM32
FreeRTos
支持多个线程并行运行,提供了
任务
调度和管理,能够满足各种复杂的多
任务
应用。2.
任务
同步和互斥:STM32
FreeRTos
提供了
任务
同步和互斥的功能,可以
实现
多个
任务
之间的协作和共享数据。3.定时器和时钟管理:STM32
FreeRTos
提供了定时器和时钟管理的功能,能够按照预设的时间
周期
定时触发相应的
任务
。4.中断管理:STM32
FreeRTos
提供了中断管理的能力,保证高速中断的处理不会影响系统的稳定性。RTOS(实时操作系统)是一种为实时应用程序设计的操作系统。实时操作系统是一种具有严格时间限制和可靠性需求的应用程序开发环境。实时操作系统的设计目标是使应用程序在预定义的时间内完成操作,并保证操作的准确性和可预测性。
基于轮询的
任务
调度系统
基于轮询的
任务
调度系统,对于不用
freertos
的开发来说很适合。可以大大缩短开发
周期
,代码的结构也清晰
适用于 Arduino、ESPx、STM32、nRF 和其他微控制器的协同多
任务
处理_C++_代码_相关文件_下载
Arduino、ESPx、STM32 和其他微控制器的协同多
任务
处理 概述: 协作多
任务
(
任务
调度)的轻量级
实现
。抢占式编程和
FreeRTOS
等框架的更简单替代方案。 为什么要合作? 您大多不需要担心并发处理的陷阱(竞争、死锁、活锁、资源共享等)。协同处理的事实通过设计解决了这些问题。 “每个学习并发并认为自己理解它的人,最终都会发现他们认为不可能的神秘种族,并发现他们实际上并没有真正理解它。” Herb Sutter,微软 ISO C++ 标准委员会主席。 主要特点: 定期
任务
执行,动态执行
周期
在milliseconds(默认)或microseconds(如果显式启用)- 执行频率 迭代次数(有限或无限次迭代) 以预定义的顺序执行
任务
任务
执行参数的动态变化(频率、迭代次数、回调方法) 在未计划运行
任务
时通过进入空闲睡眠模式来节省电力 通过状态请求对象支持事件驱动的
任务
调用 支持用于错误处理和看门狗定时器的
任务
ID 和控制点 支持本地
任务
存储指针(允许对多个
任务
使用相同的回调代码) 支持分层
任务
优先级 更多详情、使用方法,请下载后阅读README.md文件
单片机/工控
27,375
社区成员
28,769
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章