【UCOSIII】【事件标志组】实现任务同步(普通信号量、互斥信号量也能实现任务同步)

事件标志组

定义一个FLAG_GROUP

定义1bit为1个标志位


/*事件标志组*/ 实现任务同步
OS_FLAG_GRP OS_Flag_Group;
#define flag_key0 0x01
#define flag_key1 0x02
#define flag_none 0x00
//创建事件标志组
OSFlagCreate((OS_FLAG_GRP  *)&OS_Flag_Group,
			 (CPU_CHAR     *)"os flag group",
			 (OS_FLAGS      )flag_none,
			 (OS_ERR       *)&err);
OSFlagPost((OS_FLAG_GRP  *)&OS_Flag_Group,
		  (OS_FLAGS      )flag_key0,
		  (OS_OPT        )OS_OPT_POST_FLAG_SET,
		  (OS_ERR       *)&err);
OSFlagPend((OS_FLAG_GRP  *)&OS_Flag_Group,
		  (OS_FLAGS      )flag_key0|flag_key1,	//OS_OPT_PEND_FLAG_SET_ALL 等待这2个标志位都置1的时候
		  (OS_TICK       )0,
		  (OS_OPT        )OS_OPT_PEND_FLAG_SET_ALL+OS_OPT_PEND_FLAG_CONSUME,//consume用过就清零该标志位	
		  (CPU_TS       *)0,
		  (OS_ERR       *)&err);		



猜你喜欢

转载自blog.csdn.net/qq1518572311/article/details/80562823
今日推荐