OpenEdv-开源电子网

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

UCOSII

[复制链接]

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-5-29
在线时间
0 小时
发表于 2012-7-9 12:54:56 | 显示全部楼层 |阅读模式
在扩展实验8 中,我添加了一个TaskKey0任务  其中我把它的任务优先级设置在10以内   #define KEY0_TASK_Prio     8  或者 #define KEY0_TASK_Prio     7 。。。程序可以运行  但是为什么我把优先级设置到10以外  它就不执行任务了呢  不是说 UCOS最多可执行62个任务吗 ?  求解释~~~~~~~~~万分感谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

74

主题

209

帖子

0

精华

高级会员

Rank: 4

积分
919
金钱
919
注册时间
2012-1-14
在线时间
5 小时
发表于 2012-7-9 13:35:14 | 显示全部楼层
回复【楼主位】成功在望:
---------------------------------
楼主也在学习UCOS哈,我也是,互相交流:1126163471
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-7-9 13:43:30 | 显示全部楼层

回复【楼主位】 成功在望 :
---------------------------------
这个在ucos的配置里面要设置的
在os_cfg.h里面.
#ifndef __OS_CFG_H__
#define __OS_CFG_H__

//*********************************************************************************************************
//uC/OS-II 的内核构造

#define OS_MAX_EVENTS             6    //应用中最多事件控制块的数目 必须大于0   ,每增多1个,增多8个字节(>=消息邮箱+消息队列+信号量)                                                                     
#define OS_MAX_FLAGS              6    //应用中最多事件标志组的数目 必须大于 0 ,每增多1个,增多8个字节       
#define OS_MAX_MEM_PART           1    //最多内存块的数目           MUST be > 0        
#define OS_MAX_QS                 3    //应用中最多队列控制块的数目 MUST be > 0 ,每增多一个,增多24个字节(要使用队列,最少为2)      
#define OS_MAX_TASKS             11    //应用中最多任务数目      OS_MAX_TASKS<=62       
#define OS_LOWEST_PRIO           12    //定义任务的最低优先级  不得大于 63 用户可用的优先级范围为0 ~ OS_LOWEST_PRIO-2

#define OS_TASK_STAT_EN           1    //允许 (1) 或者禁止 (0) 统计任务
#define OS_TASK_IDLE_STK_SIZE    48    //统计任务堆栈容量(#按照OS_STK的宽度数目)
#define OS_TASK_STAT_STK_SIZE    48    //空闲任务堆栈容量(#按照OS_STK的宽度数目)

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-5-29
在线时间
0 小时
 楼主| 发表于 2012-7-9 14:02:10 | 显示全部楼层
谢谢  原子哥这么快的回复  问题已解决。 
我现在做个这样一个任务,就是让PB的低八位显示流水灯,
任务是这样的:
void TaskKey1(void *pdata)
{
u8 a=0;
while(1)
{
   for(a=0;a<8;a++)
   {
    PBout(a)= !PBout(a);
OSTimeDlyHMSM(0,0,0,200);
  }
 }
     

为什么总是循环总是跳过第三个灯和第四个灯
 (第三个灯和第四个一直都是灭的) 是不是因为这个时候cpu正在做其他的任务啊?
很疑惑。。。。。。。。
回复 支持 反对

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-5-29
在线时间
0 小时
 楼主| 发表于 2012-7-9 14:03:51 | 显示全部楼层
回复【2楼】1126163471:
---------------------------------
嘿嘿 一起 加油 
回复 支持 反对

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-5-29
在线时间
0 小时
 楼主| 发表于 2012-7-9 14:14:34 | 显示全部楼层
回复【4楼】成功在望:
---------------------------------
找到原因了  B3 和PB4 是和JTRST JTDO的接口,
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 14:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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