野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11499|回复: 1

UCOS-III中 事件标志组中 区分不同任务

[复制链接]
发表于 2015-8-23 20:28:47 | 显示全部楼层 |阅读模式
野火:
  你好,我想一个任务中 使用一个事件标志组, 标志组中有两个按键事件,KEY1  KEY2  ,我怎么区分这两个不同的按键呢?  如果配置了  OS_OPT_PEND_FLAG_CONSUME  这个参数不是就已经被清零了吗?  OS_FLAGS  OSFlagPend   这个函数的返回值  可以指示是哪个 按键被触发了吗?
回复

使用道具 举报

发表于 2015-8-24 10:11:56 | 显示全部楼层
对于区分两个按键:一般在使用OSFlagPost函数时会指定相关参数,这也决定你的标志的值,比如
#define KEY1 (OS_FLAG)0X0001
#define KEY2 (OS_FLAG)0X0002
对于KEY1 -> OSFlagPost(&MyEventFlagGrp,KEY1,(OS_OPT)OS_OPT_POST_FLAG_SET,&err)
对于KEY2 -> OSFlagPost(&MyEventFlagGrp,KEY2,(OS_OPT)OS_OPT_POST_FLAG_SET,&err)
这样你在使用OSFlagPend函数时候就根据需要获取某个相态的标志
OS_OPT_PEND_FLAG_CONSUME这个参数是设置在你使用OSFlagPend函数获取标志后是否继续保留该事件标志的状态,使用了之后就这个标志消耗掉,清除掉了该状态。
OSFlagPend返回值为0时表示标志没就绪或者发生错误,不为0时表示让任务进入就绪的那些事件标志
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-30 03:15 , Processed in 0.043283 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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