《全屏随机数 ucosii》由会员分享,可在线阅读,更多相关《全屏随机数 ucosii(14页珍藏版)》请在金锄头文库上搜索。
1、全屏随机数全屏随机数 ucosiiucosii/* uC/OS-II* The Real-Time Kernel* (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL* All Rights Reserved* EXAMPLE #1*/#include “includes.h“/* CONSTANTS*/#define TASK_STK_SIZE 512 /* Size of each tasks stacks (# of WORDs) */#define N_TASKS 1 /* Number of identical tasks */
2、* VARIABLES*/OS_STK TaskStkN_TASKSTASK_STK_SIZE; /* Tasks stacks */OS_STK TaskStartStkTASK_STK_SIZE;char TaskDataN_TASKS; /* Parameters to pass to each task */OS_EVENT *RandomSem;/* FUNCTION PROTOTYPES*/void Task(void *data); /* Function prototypes of tasks */void TaskStart(void *data); /* Function
3、prototypes of Startup task */static void TaskStartCreateTasks(void);static void TaskStartDispInit(void);static void TaskStartDisp(void);/*$PAGE*/* MAIN*/void main (void)PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); /* Clear the screen */OSInit(); /* Initialize uC/OS-II */PC_DOSSaveReturn(); /* S
4、ave environment to return to DOS */PC_VectSet(uCOS, OSCtxSw); /* Install uC/OS-IIs context switch vector */RandomSem = OSSemCreate(1); /* Random number semaphore */TaskStartCreateTasks(); /* Create all the application tasks */OSTaskCreate(TaskStart, (void *)0, OSStart(); /* Start multitasking */* ST
5、ARTUP TASK*/void TaskStart (void *pdata)#if OS_CRITICAL_METHOD = 3 /* Allocate storage for CPU status register */OS_CPU_SR cpu_sr;#endifchar s100;INT16S key;pdata = pdata; /* Prevent compiler warning */TaskStartDispInit(); /* Initialize the display */OS_ENTER_CRITICAL();PC_VectSet(0x08, OSTickISR);
6、/* Install uC/OS-IIs clock tick ISR */PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */OS_EXIT_CRITICAL();OSStatInit(); /* Initialize uC/OS-IIs statistics */for (;) TaskStartDisp(); /* Update the display */if (PC_GetKey( /* Return to DOS */OSCtxSwCtr = 0; /* Clear context switch counter */OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */*$PAGE*/* INITIALIZE THE DISPLAY*/static void TaskStartDispInit (void)/* 111111111