【文件名称】
【功能描述】互斥信号量实验代码
【程序版本】
【创建人及创建日期】昆明理工王老师//2013-12-13 16:30
【修改人及修改日期】
****************************************************************************/
#include ""
/************************任务、堆栈、优先级定义***************************/
OS_STK Main_Task_Stack[STACKSIZE_M];
void Task_Main( void *Id ) ;
#define Main_Task_PRIO 4
OS_STK Task_A_Stack[STACKSIZE_M];
void Task_A( void *Id ) ;
#define Task_A_PRIO 16
OS_STK Task_B_Stack[STACKSIZE_M];
void Task_B( void *Id ) ;
#define Task_B_PRIO 15
OS_EVENT *LED_Mutex; //LED互斥信号量
void Main(void)
{
char Id0 = '1';
U8 err;
SystemInit();
Delay(5000);//延时等待有效复位
Led( OFF ) ;
Led_Set(0x00);//关闭底板LED
Uart_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();
}
void Task_Main(void *p_arg)
{
char Id1 = '2';
char Id2 = '3';
U16 ver ;
(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
互斥信号量AB两个任务程序 来自淘豆网m.daumloan.com转载请标明出处.