Beruflich Dokumente
Kultur Dokumente
h>
#define N_TASKS 3
int TaskDate[3];
OS_STK TasksStart_Stack[STACKSIZE]={0,};
void TaskStart(void*Id);
#define TaskStart_Prio11
OS_STK task0_Stack[STACKSIZE]={0,};
#define Task0_Prio 22
OS_STK task1_Stack[STACKSIZE]={0,};
void Task1(void*Id);
#define TaskStart_Prio 33
OS_STK task2_Stack[STACKSIZE]={0,};
void Task2_Prio 44
#define Task2_Prio 44
OS_EVENT*SEM;
int main(void)
BSP_IntDisAll();
BSP_Init();
SEM=OSSemCreate(1);
TaskStart_Prio);
OSStart();
return 0;
INT8U i;
TaskData[i]=i;
printf("Welcome to USCOS:\n");
OSTaskCreate(Task0,(void*)&TaskData[0],(OS_STK*)&task0_Stack[STACKSIZE-1],Task0_Prio);
OSTaskCreate(Task1,(void*)&TaskData[1],(OS_STK*)&task1_Stack[STACKSIZE-1],Task1_Prio);
OSTaskCreate(Task2,(void*)&TaskData[2],(OS_STK*)&task2_Stack[STACKSIZE-1],Task2_Prio);
OSTaskSuspend(TaskStart_Prio);
void Task0(void*Id)
INT8U err;
INT8U id;
id=*(int *)id;
for(;;)
OSTimeDly(3000);
printf("\n\r The event of Task %d come.",id);
switch(err)
case OS_NO_ERR:
FIO3PIN=0X44;
printf("\n");
break;
default:
OSTimeDly(2990);
FIO3PIN=0X00;
OSSSemPost(SEM);
INT8U id;
id=*(int*)Id;
for(;;)
{
printf('\n\r Task %d is waiting an event",id);
OSTimeDly(2000);
OSTimeDly(2000);
FIO3PIN=0X008000FF;
OSTimeDly(2000);
FIO3PIN=0X00800000;
void Task2(void*Id)
INT8U err;
INT8U id;
id=*(int*)Id;
for(;;)
OSTimeDly(2000);
OSTimeDly(2000);
FIO3PIN=0X00800000;
void Task2(void*Id)
{
INT8U err;
INT8U id;
id=*(int*)Id;
for(;;)
OSTimeDly(1000);
OSSemPend(SEM,0,&err);
switch(err)
case OS_NO_ERR:
FIO3PIN=0X11;
printf('\n");
break;
default:
printf("\n");
OSTimeDly(5000);
FIO3PIN=0X00;
OSSemPost(SEM);