void TaskStart (void *pdata) { #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr; #endif INT16S key; pdata = pdata; /* Prevent compiler warning */ TaskStartDispInit(); /* Setup the display */ OSStatInit(); /* Initialize uC/OS-II's statistics */ MsgQueue = OSQCreate(&MsgQueueTbl[0], MSG_QUEUE_SIZE); /* Create a message queue */ TaskStartCreateTasks(); for (;;) { TaskStartDisp(); /* Update the display */ if (PC_GetKey(&key)) { /* See if key has been pressed */ if (key == 0x1B) { /* Yes, see if it's the ESCAPE key */ exit(0); /* Yes, return to DOS */ } } OSCtxSwCtr = 0; /* Clear the context switch counter */ OSTimeDly(OS_TICKS_PER_SEC); /* Wait one second */ } }
/* ********************************************************************************************************* * STARTUP TASK ********************************************************************************************************* */ void TaskStart (void *pdata) { #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr; #endif char s[100]; INT16S key; pdata = pdata; /* Prevent compiler warning */ TaskStartDispInit(); /* Initialize the display */ OS_ENTER_CRITICAL(); PC_VectSet(0x08, OSTickISR); /* Install uC/OS-II's clock tick ISR */ PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */ OS_EXIT_CRITICAL(); OSStatInit(); /* Initialize uC/OS-II's statistics */ FileContentInit(); /* Initialize fileContent */ TaskStartCreateTasks(); /* Create all the application tasks */ OSTaskCreate(ReceiveTask,(void *)0, &ReceiveTaskStk[TASK_STK_SIZE - 1], 11); for (;;) { TaskStartDisp(); /* Update the display */ if (PC_GetKey(&key) == TRUE) { /* See if key has been pressed */ if (key == 'q') /* Yes, see if it's the ESCAPE key */ PC_DOSReturn(); /* Return to DOS */ if (key == 'b') /* See if it's b and then stop the tasks */ TaskSuspend(); if (key == 'r') /* See if it's r and then resume the tasks */ TaskResume(); } OSCtxSwCtr = 0; /* Clear context switch counter */ OSTimeDlyHMSM(0, 0, 0, 100); /* Wait one second */ } }
/* ********************************************************************************************************* * STARTUP TASK ********************************************************************************************************* */ void TaskStart (void *pdata) { #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr; #endif INT8U i; char s[100]; INT16S key; pdata = pdata; /* Prevent compiler warning */ TaskStartDispInit(); /* Initialize the display */ OS_ENTER_CRITICAL(); PC_VectSet(0x08, OSTickISR); /* Install uC/OS-II's clock tick ISR */ PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */ OS_EXIT_CRITICAL(); OSStatInit(); /* Initialize uC/OS-II's statistics */ TaskStartCreateTasks(); /* Create all the application tasks */ for (;;) { TaskStartDisp(); if (PC_GetKey(&key) == TRUE) { /* See if key has been pressed */ if (key == 0x1B) { /* Yes, see if it's the ESCAPE key */ PC_DOSReturn(); /* Return to DOS */ } } OSCtxSwCtr = 0; OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */ } }