OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1863|回复: 0

freeRTOS中的vTaskDelay问题

[复制链接]

2

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2023-6-3
在线时间
4 小时
发表于 2023-6-10 12:43:25 | 显示全部楼层 |阅读模式
1金钱
vTaskDelay.png
今天在学习freeRTOS的时候,突然想到一个问题,如果优先级相同的时候,时间片的调度会协调各任务。
但是如果优先级不同的情况下,如果中间优先级的任务不使用vTaskDelay去挂起任务呢?
那么低优先级的任务是不是会被该任务去无限阻塞,导致无法运行?
然后就设置了如图的任务;
(1)LED1任务死循环中如果为空时,无论LED0,USART1的优先级为高还是为低,两个任务运行正常;
(2)LED1任务中打开gLED_Toggle(),但是不打开vTaskDelay时,设置USART1的优先级为4,设置LED0的优先级分别为2与5时,LED0闪烁表现异常,
     LED偶尔以设定的1s的频率运行,偶尔会在一瞬间跳变两次(应该)电平,从而保持了之前的状态,
     如:当前为低,准备跳转高,结果跳转高后又接着跳转低电平,从而维持了之前低电平的状态;

现在手上又没有仿真器以及示波器,所以没办法去仿真与观察具体的电平转换情况,所以问问大家

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表