📄 mjy.c
字号:
/* test */
#include "includes.h"
#define TASK_STK_SIZE 512
OS_STK MTaskStk[TASK_STK_SIZE];
OS_STK JTaskStk[TASK_STK_SIZE];
OS_STK YTaskStk[TASK_STK_SIZE];
INT16S key;
INT8U x1=0,y1=21,x2=30,y2=5,x3=60,y3=4,t1,t2,t3;
void MTask(void *data);
void JTask(void *data);
void YTask(void *data);
void main(void)
{
char* s_M="M";
OSInit();
PC_DOSSaveReturn();
PC_VectSet(uCOS, OSCtxSw);
OSTaskCreate(
MTask,
s_M,
&MTaskStk[TASK_STK_SIZE-1],
0
);
OSStart();
}
void MTask(void *pdata)
{
char* s_J="J";
char* s_Y="Y";
#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(
JTask,
s_J,
&JTaskStk[TASK_STK_SIZE-1],
1
);
OSTaskCreate(
YTask,
s_Y,
&YTaskStk[TASK_STK_SIZE-1],
2
);
for(;;)
{
if(x1>18){x1=0; y1=21;}
PC_DispChar(
x1,y1,
*(char*)pdata,
DISP_BGND_BLACK + DISP_FGND_WHITE
);
x1+=1;
if(y1==21)t1=25;
if(y1>1&&t1>y1){t1=y1; y1=y1-4;}
if(y1==1)t1=0;
if(y1<21&&t1<y1){t1=y1; y1=y1+4;}
if(PC_GetKey(&key) == TRUE)
{
if(key == 0x1B)
{
PC_DOSReturn();
}
}
OSTimeDlyHMSM(0,0,2,0);
}
}
void JTask(void *pdata)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
pdata = pdata;
for(;;)
{
if(y2==5)
{
x2+=1;
t2=0;
}
if(x2>50||t2==1)
{
x2=41;
y2+=1;
t2=1;
}
if(y2==21)
{
x2=x2-1;
t2=0;
}
if(x2==32&&y2==21)
{
x2=31;
y2=5;
}
PC_DispChar(
x2,y2,
*(char*)pdata,
DISP_BGND_BLACK + DISP_FGND_WHITE
);
OSTimeDlyHMSM(0,0,1,0);
}
}
void YTask(void *pdata)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
pdata = pdata;
for(;;)
{
if(x3>=60&&x3<70)
{
x3+=1;
y3+=1;
}
PC_DispChar(
x3,y3,
*(char*)pdata,
DISP_BGND_BLACK + DISP_FGND_WHITE
);
if(x3==70)
{
y3+=1;
t3=0;
}
if(y3==22&&t3==0)
{
x3=80;
y3=4;
t3=1;
}
if(t3==1)
{
x3=x3-1;
y3=y3+1;
}
OSTimeDlyHMSM(0,0,2,0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -