2、2 题目组合 2 程序设计题目-事件标志组编程 目标:设计三个任务,当时间到且独立按健被按下过,让 LED 闪耀一下。设 LE D任务为高优先级任务,三个任务得处理流程如图。下面就是三个任务得处理流程。按键中断发送低位标志退出中断定时发送标志任务1延时 S发送次低位标志LED任务等待标志组,最低两位1都为LED闪烁主任务:无条件挂起一个任务,之后建立两个子任务(任务 A 与任务 B),设置任务 B 为高优先级任务。以两组信号量(低位标志与次低位标志)组成之间标志组,完成程序设计。任务A: vo id Tas k_A(void *p_arg){I NT 8 U err;while(1)ﻩ{ﻩOS Ti meDl y(1 00);ﻩOSF l a g Po st(LED_F l ag,(OS_F L AGS)2,O S_FLAG_SET,&err);ﻩi f(err != OS_NO_E RR)U a rt_P r i n tf("T a sk_A事件标志组失败,错误码%d\n",e r r);ﻩﻩel s eﻩﻩU art_Pr i nt f("发送标志位\r\n");ﻩﻩ}任务 Bvoid Ta sk_B(v o id *p_ar g){ﻩIN T 8 U err;ﻩw h ile(1)ﻩ{ O S Flag Pe n d(LED_Flag,(OS_FLAGS)3,OS_FLAG_WAI T_SET_A N D | O S_F LAG_CON S UM E,0,&e r r);ﻩﻩUa r t_Printf("L ED 亮\r\n");ﻩﻩL e d(ON);O STim e Dly(1 0 0);ﻩLed(OFF);ﻩOSTi m eD l y(1 0 0);Uart_Printf("L ED 灭 实验成功\r\n");ﻩ}}中断任务void E I nt 0 Isr(v oid){I NT8 U er r; ﻩrI_IS PC = BIT_EINT0;ﻩO S I ntEnter();Uart_Prin t f("发送按键中断\r\n");O SFlagPo s t(LED_Fla g,(O S_F LAG S)1,O S_F L AG_S ET,&er r);U a rt_Print f("发送低位标志\r\n");ﻩOSInt E xi t();ﻩUa r t_Printf("退出按键中断\r\n");}试验程序#i ncl ude "g rob a l、h"/************************任务、堆栈、优先级定义***************************/O S_STK Task_S t art_St ack[STACK S IZE_M];v o id Task_S t ar t( v o id *I d ) ;#de f in e Ta sk_S ta rt_PR I O 4OS_S TK Task_A_S t ack[S T A CKSIZ E_M];void Task_A( void *Id ) ;#d ef i ...