OpenEdv-开源电子网

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

UCOS2问题,能否让任务A在执行时,任务B的某一部分功能也能得到执行

[复制链接]

32

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2011-8-15
在线时间
33 小时
发表于 2012-3-5 21:49:23 | 显示全部楼层 |阅读模式
    如题,
比如任务A是刷新LCD,
任务B是保存串口数据

能否做到,任务A刷新LCD的时候,假设刷新一次屏幕需要3分钟[假设啊]
在此期间任务B的一部分功能是串口通信,此3分钟内能够保存通信数据,不受任务A的影响

这样能否做到呢???
    补充,我认为这是矛盾的事情,这不就是2个任务都在运行吗?这是不太现实的吧
我是新手,第一次学习UCOS
不知道大家觉得如何
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2011-8-18
在线时间
0 小时
发表于 2012-3-5 22:08:01 | 显示全部楼层
串口任务优先级高于显示任务的话,当串口任务就绪后,任务执行切换,显示任务会压栈,也就是把显示任务暂时中断下来,把各种配置参数暂时压入堆栈中,然后执行优先级更高的串口任务,等串口接受完数据后,显示任务接着中断位置继续执行,所以是不会受影响的,操作系统其实每个任务只是在不同的时间占据一个CPU
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-5 23:10:46 | 显示全部楼层
ucos可以实现你的要求的.
你可以设置串口的优先级高于LCD的,这样在LCD清屏期间,串口就可以打断LCD的执行,从而处理串口数据.当处理完数据之后,调用延时函数,让出CPU使用权,LCD得以继续执行.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
发表于 2012-3-6 08:56:05 | 显示全部楼层
LZ要記住,任何時候都只能有一個任務在執行,不能兩個任務同時執行。平時說的多任務運行,也就是CPU輪流為每個任務服務而已,只是時間上讓我們感覺好像是多任務在同時運行。理解了這個就好了。
回复 支持 反对

使用道具 举报

32

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2011-8-15
在线时间
33 小时
 楼主| 发表于 2012-3-6 13:02:33 | 显示全部楼层
谢谢各位,所以我应该将这个很耗时的任务分成几个小任务,来处理,每一个需要的时间短了,就好办一点吧
回复 支持 反对

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2011-7-17
在线时间
0 小时
发表于 2012-3-7 14:25:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 01:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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