📄 实验9.txt
字号:
#include "includes.h"
#define TASK_STK_SIZE 512
OS_STK MyTaskStk[TASK_STK_SIZE];
OS_STK YouTaskStk[TASK_STK_SIZE];
OS_STK ThreeTaskStk[TASK_STK_SIZE];
OS_STK StartTaskStk[TASK_STK_SIZE];
INT16S key;
char *s1="MyTask is running";
char *s2="YouTask is running";
char *s3="ThreeTask is running";
char *ss="MyTask ask";
INT8U err;
INT8U y=0;
INT32U Times=0;
OS_EVENT * Semp;
void StartTask(void *data);
void MyTask(void *data);
void YouTask(void *data);
void ThreeTask(void *data);
void main()
{
OSInit();
PC_DOSSaveReturn();
PC_VectSet(uCOS,OSCtxSw);
Semp=OSSemCreate(1);
OSTaskCreate(StartTask,
(void*)0,
&StartTaskStk[TASK_STK_SIZE -1],
0);
OSStart();
}
void StartTask(void *pdata)
{
#if OS_CRITICAL_METHOD ==3
OS_CPU_SR cpu_sr;
#endif
pdata = pdata;
OS_ENTER_CRITICAL();
PC_VectSet(0x08,OSTickISR);
PC_SetTickRate(OS_TICKS_PER_SEC);
OS_EXIT_CRITICAL();
OSStatInit();
OSTaskCreate(MyTask,
(void*)0,
&MyTaskStk[TASK_STK_SIZE -1],
2);
OSTaskCreate(YouTask,
(void*)0,
&YouTaskStk[TASK_STK_SIZE -1],
4);
OSTaskCreate(ThreeTask,
(void*)0,
&ThreeTaskStk[TASK_STK_SIZE -1],
6);
for(;;)
{
if(PC_GetKey(&key)==TRUE)
{
if(key==0x1B)
{
PC_DOSReturn();
}
}
OSTimeDlyHMSM(0,0,3,0);
}
}
void MyTask(void*pdata)
{
#if OS_CRITICAL_METHOD==3
OS_CPU_SR cpu_sr;
#endif
pdata=pdata;
for(;;)
{
OSTimeDlyHMSM(0,0,1,200);
{
PC_DispStr(10,++y,
ss,
DISP_BGND_BLACK+DISP_FGND_RED);
OSSemPend(Semp,0,&err);
PC_DispStr(10,++y,
s1,
DISP_BGND_BLACK+DISP_FGND_YELLOW);
OSSemPost(Semp);
}
}
}
/**********************任务YouTask********************/
void YouTask(void*pdata)
{
#if OS_CRITICAL_METHOD==3
OS_CPU_SR cpu_sr;
#endif
pdata=pdata;
for(;;)
{
PC_DispStr(10,++y,
s2,
DISP_BGND_BLACK+DISP_FGND_GREEN);
OSTimeDlyHMSM(0,0,0,300);
}
}
void ThreeTask(void *pdata)
{
#if OS_CRITICAL_METHOD ==3
OS_CPU_SR cpu_sr;
#endif
pdata=pdata;
for(;;)
{
OSSemPend(Semp,0,&err);
PC_DispStr(10,++y,s3,
DISP_BGND_BLACK+DISP_FGND_WHITE);
for(Times;Times<20000000;Times++)
{
OS_Sched();
}
OSSemPost(Semp);
OSTimeDlyHMSM(0,0,1,0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -