互斥信号量AB两个任务程序/****************************************************************************【文件名称】【功能描述】互斥信号量实验代码【程序版本】【创建人及创建日期】昆明理工王老师//2013-12-1316:30【修改人及修改日期】****************************************************************************/#include""/************************任务、堆栈、优先级定义***************************/OS_STKMain_Task_Stack[STACKSIZE_M];voidTask_Main(void*Id);#defineMain_Task_PRIO4OS_STKTask_A_Stack[STACKSIZE_M];voidTask_A(void*Id);#ask_A_PRIO16OS_STKTask_B_Stack[STACKSIZE_M];voidTask_B(void*Id);#ask_B_PRIO15OS_EVENT*LED_Mutex;//LED互斥信号量voidMain(void){charId0='1';U8err;SystemInit();Delay(5000);//延时等待有效复位Led(OFF);Led_Set(0x00);//关闭底板LEDUart_Printf("\n\n昆明理工大学...\n\n");OSInit();//创建LED互斥信号量LED_Mutex=OSMutexCreate(13,&err);if(err!=OS_NO_ERR);Uart_Printf("创建LED_Mutex失败,错误码%d\n\0",err);//创建主任务OSTaskCreate(Task_Main,(void*)&Id0,(OS_STK*)&Main_Task_Stack[STACKSIZE_M-1],Main_Task_PRIO);OSStart();}voidTask_Main(void*p_arg){charId1='2';charId2='3';U16ver;(void)p_arg;Uart_Printf("uCOS-II实时操作系统初始化...\n");OSTimeSet(0);Uart_Printf("uCOS-II实时操作系统时钟设定.\n");ver=OSVersion();Uart_Printf("uCOS-II实时操作系统版本:%d\n",ver);Uart_Printf("\nuCOS-II实时操作系统开始运行...\n");Uart_Printf("请注意串口输出及LED灯闪烁,\0");Uart_Printf("注意AB两个任务之间消息传递及调度关系!\n\n");TimersStart();OSTimeDly(20);OSTaskCreate(Task_A,(void*)&Id1,(OS_STK*)&Task_A_Stack[STACKSIZE_M-1],Task_A_PRIO);//底板LED组显示任务OSTaskCreate(Task_B,(void*
互斥信号量AB两个任务程序 来自淘豆网www.taodocs.com转载请标明出处.