?? test.c
字號(hào):
/*
*********************************************************************************************************
*
*********************************************************************************************************
*/
#include "includes.h"
/**************************************Varible************************************************/
OS_STK Task1[256];
OS_STK Task2[256];
OS_STK Task3[256];
OS_STK Task4[256];
OS_STK Task5[256];
OS_STK Task6[256];
OS_STK Task7[256];
/******************Sem*****************************/
OS_EVENT *Cou1Sem;
OS_EVENT *Cou2Sem;
INT16U mm=0;
void task1(void *pdata);
void task2(void *pdata);
void task3(void *pdata);
void task4(void *pdata);
void task5(void *pdata);
void task6(void *pdata);
void task7(void *pdata);
void main (void)
{
PC_DispClrScr(DISP_BGND_BLUE+DISP_FGND_WHITE) ;
PC_DOSSaveReturn();
PC_VectSet(uCOS,OSCtxSw);
OSInit();
OSTaskCreate(task1,(void *)0,&Task1[255],10);
OSTaskCreate(task2,(void *)0,&Task2[255],14);
OSTaskCreate(task3,(void *)0,&Task3[255],12);
OSTaskCreate(task4,(void *)0,&Task4[255],13);
OSTaskCreate(task5,(void *)0,&Task5[255],15);
OSTaskCreate(task6,(void *)0,&Task6[255],16);
OSTaskCreate(task7,(void *)0,&Task7[255],17);
Cou1Sem = OSSemCreate(1);
Cou2Sem = OSSemCreate(1);
OSStart();
}
/**************************************Varible************************************************/
void task1(void *pdata)
{
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
char s[80];
pdata = pdata;
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();
PC_DispStr(49,24,"Task5: " ,DISP_FGND_YELLOW+DISP_BGND_BLUE);
PC_DispStr(20,0,"The UCOS-II run in the Personal-Computer",DISP_FGND_YELLOW+DISP_BGND_GREEN);
PC_DispStr(0,2,"Task1 a~z :",DISP_FGND_YELLOW+DISP_BGND_GREEN);
PC_DispStr(0,4,"Task2 num :",DISP_FGND_YELLOW+DISP_BGND_GREEN);
PC_DispStr(0,6,"Task3 A~Z :",DISP_FGND_YELLOW+DISP_BGND_GREEN);
PC_DispStr(0,8,"Task4 Cou :",DISP_FGND_YELLOW+DISP_BGND_GREEN);
PC_DispStr(13,13,"!!********************Information********************!!",DISP_FGND_YELLOW+DISP_BGND_GREEN);
PC_DispStr(0,15,"1. Task2 will count once per second !!",DISP_FGND_YELLOW+DISP_BGND_RED);
PC_DispStr(0,16,"2. Task3 will print A to Z !!",DISP_FGND_YELLOW+DISP_BGND_RED);
PC_DispStr(0,17,"3. Task4 will count once after that task3 complete to display A to Z once!!",DISP_FGND_YELLOW+DISP_BGND_RED);
PC_DispStr(0,18,"4. Task1 will print a to z controlled by the UCOS-II embbed clock!!",DISP_FGND_YELLOW+DISP_BGND_RED);
PC_DispStr(0,19,"5. Task5 will display the time on your computer!!",DISP_FGND_YELLOW+DISP_BGND_RED);
for(;;)
{
PC_GetDateTime(&s[0]);
PC_DispStr(60,24,s,DISP_FGND_WHITE+DISP_BGND_BLACK);
OSTimeDly(10);
}
}
void task2(void *pdata)
{
char s='a';
INT8U *err;
INT8U y=10;
pdata = pdata;
for(;;)
{
OSSemPend(Cou1Sem,600,err);
PC_DispChar(y,3,s,DISP_BGND_BLUE+DISP_FGND_WHITE);
s=s+1;
if(s>'z'+1) {s='a';y=10;PC_DispClrRow(3,DISP_BGND_BLUE);}
y=y+1;
OSTimeDly(50);
}
}
void task3(void *pdata)
{
char s='A';
INT8U y=10;
pdata = pdata;
for(;;)
{
PC_DispChar(y,7,s,DISP_BGND_BLUE+DISP_FGND_WHITE);
s=s+1;
if(s>'Z'+1) {s='A';y=10;PC_DispClrRow(7,DISP_BGND_BLUE);OSSemPost(Cou1Sem);OSSemPost(Cou2Sem);}
y=y+1;
OSTimeDly(50);
}
}
void task4(void *pdata)
{
INT8S cou = -1;
INT8U *err;
char s[2];
pdata=pdata;
for(;;)
{
OSSemPend(Cou2Sem,0,err);
cou++;
sprintf(s,"%2d ",cou);
PC_DispStr(10,9,s,DISP_BGND_PURPLE+DISP_FGND_WHITE);
OSTimeDly(100);
}
}
void task5(void *pdata)
{
char s[1];
INT8U y=10;
pdata=pdata;
mm=1;
for(;;)
{
sprintf(s,"%+4d ",mm);
PC_DispStr(y,5,s,DISP_FGND_YELLOW+DISP_BGND_BLUE);
y=y+1;
mm=mm+1;
if(mm>=28)
{
mm=1;
y=10;
PC_DispClrRow(5,DISP_BGND_BLUE);
}
OSTimeDly(200);
}
}
void task6(void *pdata)
{
pdata=pdata;
for(;;)
{
PC_DispStr(49,22,"Author : MaoDashi by 2007.10.2",DISP_FGND_YELLOW+DISP_BGND_GREEN);
OSTimeDly(600);
}
}
void task7(void *pdata)
{
pdata=pdata;
for(;;)
{
PC_DispClrRow(22,DISP_BGND_BLUE);
OSTimeDly(800);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -