OpenEdv-开源电子网

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

正在学ucosII,建一个帖子请教一下大家问题(持续更新)

[复制链接]

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
发表于 2014-6-23 15:03:04 | 显示全部楼层 |阅读模式
5金钱
请问一下,我在看到邮箱那里,有个疑惑,为什么任务间传数据要通过邮箱?直接定义全局变量来传不行吗?如果说直接定义全局变量不可以,是因为怕同一数据被多个任务同时占有吗?

最佳答案

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

回复【6楼】ljjdglg520: --------------------------------- 源码里有 仔细看看,就可以发现自减了 OS_ENTER_CRITICAL(); if(pevent->OPEventCnt>0u){ pevent->OPEventCnt--; OS_EXIT_CRITICAL(); *perr=OS_ERR_NONE; return; }
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-6-23 15:03:05 | 显示全部楼层
回复【6楼】ljjdglg520:
---------------------------------
源码里有 仔细看看,就可以发现自减了
OS_ENTER_CRITICAL();
if(pevent->OPEventCnt>0u){
pevent->OPEventCnt--;
OS_EXIT_CRITICAL();
*perr=OS_ERR_NONE;
return;
}
不用谢了……
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-6-23 15:42:17 | 显示全部楼层
这是基于减少程序间耦合度的理念
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
 楼主| 发表于 2014-6-23 16:26:46 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
- -这么深奥。。。算了,反正就是用全局变量不好。朋友,再问你问题,原子哥ucosII实验2中,按KEY1后蜂鸣器信号会增加,然后同时会自减一直到0,但是我找不到哪段程序是让蜂鸣器信号自减的?难道是  OSSemPend(sem_beep,0,&err)这一句,每接收一次信号,beep->OSEventCnt就自减一次?
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-6-23 16:44:24 | 显示全部楼层
回复【3楼】ljjdglg520:
---------------------------------
不太清楚,没跑过原子的例程。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
 楼主| 发表于 2014-6-23 16:45:37 | 显示全部楼层
噢噢,谢谢啦
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
 楼主| 发表于 2014-6-23 16:46:23 | 显示全部楼层
请问一下,原子哥ucosII实验2中,按KEY1后蜂鸣器信号会增加,然后同时会自减一直到0,但是我找不到哪段程序是让蜂鸣器信号自减的?难道是  OSSemPend(sem_beep,0,&err)这一句,每接收一次信号,beep->OSEventCnt就自减一次?谁能告诉我下?谢谢
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-6-23 17:27:04 | 显示全部楼层
刚打开看了下,按键扫描后就发送邮箱OSMboxPost(msg_key,(void*)&key);
然后在主任务里面OSMboxPend(msg_key,10,&err);请求邮箱。
判断到蜂鸣器按键后 就发送信号量OSSemPost(sem_beep);
不用谢了……
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
 楼主| 发表于 2014-6-23 22:19:07 | 显示全部楼层
回复【8楼】eling13:
---------------------------------
好的谢谢
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 01:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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