OpenEdv-开源电子网

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

ucos在PC机上的应用(带附件)

[复制链接]

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
发表于 2014-9-18 16:55:30 | 显示全部楼层 |阅读模式
5金钱
我在PC机上跑这个ucos的例程,其中当MyTask任务满足Y>1时取消YouTaskStk任务的延时,那这样的话YouTaskStk任务没有延时会不会一直执行?实际运行中MyTaskStk任务也在执行,为什么?求大神相助!

例3-3.rar

115.58 KB, 下载次数: 264

例4-6.rar

116.46 KB, 下载次数: 264

最佳答案

查看完整内容[请看2#楼]

OSTimeDlyResume函数作用是使一个处于延时等待的任务结束等待而进入就绪状态。 楼主想一想啊,当Y>1时YOUTASK立刻结束延时等待继续运行,运行到OSTimeDly(500)时怎么办呢,当然是继续延时等待了。 继续运行时,因为y>1,一旦MYTASK运行就会使YOUTASK进入就绪状态,所以MYTASK执行完毕后YOUTASK会立即执行,所以从宏观上看y>1时两个任务都是100ms执行一次
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-9-18 16:55:31 | 显示全部楼层
OSTimeDlyResume函数作用是使一个处于延时等待的任务结束等待而进入就绪状态。
楼主想一想啊,当Y>1时YOUTASK立刻结束延时等待继续运行,运行到OSTimeDly(500)时怎么办呢,当然是继续延时等待了。

继续运行时,因为y>1,一旦MYTASK运行就会使YOUTASK进入就绪状态,所以MYTASK执行完毕后YOUTASK会立即执行,所以从宏观上看y>1时两个任务都是100ms执行一次
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-19 07:59:08 | 显示全部楼层
Y>1的时候youtask任务的延时不是取消了吗?为什么还要等待?
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-19 08:00:15 | 显示全部楼层
大神,这里面的C文件要是改动的话怎么重新编译?
回复

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-9-19 14:36:08 | 显示全部楼层
回复【3楼】熊健:
---------------------------------
看来楼主对ucos任务的理解还是很欠缺啊
YOUTASK是每500ms运行一次的,取消延时是指取消当次的延时,因为取消指令是靠mytask发出的,mytask每100ms运行过一次,所以y>1时取消延时也是每100ms取消一次,youtask不用500ms执行一次而是100ms执行一次
回复

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-9-19 14:38:29 | 显示全部楼层
回复【4楼】熊健:
---------------------------------
每个编译软件都有编译的按钮,多看看书吧
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-19 15:42:24 | 显示全部楼层
我才开始接触ucos,还有很多地方不清楚的!还望大神多指教啊!!!
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-19 15:43:37 | 显示全部楼层
我用的是精简版的BC3.1,没有集成环境下的编译按钮,都是DOS窗口下完成的!
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-19 15:45:40 | 显示全部楼层
大神,QQ多少?加个好友方便联系
回复

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-9-19 17:24:35 | 显示全部楼层
回复【8楼】熊健:
---------------------------------
建议在VS2010下实验
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-19 20:29:04 | 显示全部楼层
VS可以编译ucos的工程吗?
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-21 16:59:47 | 显示全部楼层
大神再帮忙看下这个程序,附件挂在一楼第二个,      
  for(Times;Times<20000000;Times++)
{
OS_Sched();
}
这段什么意思?
OS_Sched();这个函数是任务调度的意思吧,这么写有什么别的意思吗?
回复

使用道具 举报

22

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-10-4
在线时间
0 小时
 楼主| 发表于 2014-9-21 17:00:40 | 显示全部楼层
大神,ucos怎么学的?我还有好多东西不熟悉,有没有什么快速解决的办法?
回复

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-9-22 09:37:56 | 显示全部楼层
回复【11楼】熊健:
---------------------------------
当然可以了,我学UCOS就是在VS2010下面做得实验
回复

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-9-22 09:48:19 | 显示全部楼层
回复【13楼】熊健:
---------------------------------
先看任哲那本书吧,现在应该是第三版了,好好看看,最好看2-3遍,看的差不多的要有选择性的看下源码,看源码可以用邵贝贝那本书,源码讲解比较多
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2014-9-28 17:34:10 | 显示全部楼层
回复【15楼】taiwentaotwt:
---------------------------------
请问QQ多少啊!!我目前想开始学习ucos
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2014-9-28 17:34:46 | 显示全部楼层
回复【13楼】熊健:
---------------------------------
你QQ多少啊!!!我现在学习也是看任哲的书本,,BC3.1也在虚拟机上
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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