野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12425|回复: 5

关于ucos LED多任务教程中的任务数量求教

[复制链接]
发表于 2015-8-28 14:59:26 | 显示全部楼层 |阅读模式
采用的是教程里的LED多任务程序,使用的任务数代码为
  1. #define STARTUP_TASK_PRIO          3
  2. #define        TASK_LED1_PRIO         4           
  3. #define        TASK_LED2_PRIO         5
  4. #define        TASK_LED3_PRIO         6
复制代码
这样能够正常的运行;当修改TASK_LED1_PRIO         为大于或者等于7时,LED1不能够正常运行;
  1. #define STARTUP_TASK_PRIO          3
  2. #define        TASK_LED1_PRIO         7
  3. #define        TASK_LED2_PRIO         5
  4. #define        TASK_LED3_PRIO         6
复制代码
不知道各位有没有遇到这种情况,这应该如何修改设置呢?
回复

使用道具 举报

发表于 2015-8-28 17:00:10 | 显示全部楼层
你改的是任务优先级
os_task.c优先级判断有这句
if (prio >= OS_CFG_PRIO_MAX) {                          /* Priority must be within 0 and OS_CFG_PRIO_MAX-1        */
        *p_err = OS_ERR_PRIO_INVALID;
        return;

回复 支持 反对

使用道具 举报

发表于 2015-8-28 17:14:59 | 显示全部楼层
OS_CFG_PRIO_MAX 这个被定义为了 8u  所以你写7就是无效任务优先级
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-28 17:23:10 | 显示全部楼层
全金属小册老 发表于 2015-8-28 17:14
OS_CFG_PRIO_MAX 这个被定义为了 8u  所以你写7就是无效任务优先级

这个我有查看过,在os_cfg.h中的OS_CFG_PRIO_MAX定义为
  1. #define OS_CFG_PRIO_MAX                64u
复制代码


可优先级还是不能大于6
回复 支持 反对

使用道具 举报

发表于 2015-8-28 17:33:17 | 显示全部楼层
Nazs 发表于 2015-8-28 17:23
这个我有查看过,在os_cfg.h中的OS_CFG_PRIO_MAX定义为

怎么会64.。。你自己改的?  
45行code
#define OS_CFG_PRIO_MAX                 8u   /* Defines the maximum number of task priorities (see OS_PRIO data type) */
回复 支持 反对

使用道具 举报

发表于 2015-8-28 17:36:59 | 显示全部楼层
Nazs 发表于 2015-8-28 17:23
这个我有查看过,在os_cfg.h中的OS_CFG_PRIO_MAX定义为

反正我改了 限制值 20u 随便你LED 写 7 89 都行 程序正常 我估计你看错了
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 11:11 , Processed in 0.039394 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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