📄 yy2.c
字号:
#include <includes.h>
void TaskStartyya(void *yydata) ;
void TaskStartyyb(void *yydata) ;
void TaskStartyyc(void *yydata) ;
void TaskStartyy(void *yydata) ;
OS_STK TaskStartStkyya[MaxStkSize];//注意:我在ASM文件中设置?STACK空间为40H即64。
OS_STK TaskStartStkyyb[MaxStkSize];
OS_STK TaskStartStkyyc[MaxStkSize];
OS_STK TaskStartStkyy[MaxStkSize];
sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P3^3;
sbit LED5=P3^4;
sbit LED6=P3^5;
int i=0;
OS_EVENT *sem1;
void main(void)
{
OSInit();
LED0=0;
sem1 = OSSemCreate(0);
InitTimer0();
InitSerial();
InitSerialBuffer();
OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],8);
OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],3);
// OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);
// OSTaskCreate(TaskStartyy, (void *)0, &TaskStartStkyya[0],2);
OSStart();
}
/*
void TaskStartyya(void *yydata) reentrant
{
yydata=yydata;
clrscr();
PrintStr("\n\t\t*******************************\n");
PrintStr("\t\t* Hello! The world. *\n");
PrintStr("\t\t*******************************\n\n\n");
for(;;)
{
PrintStr("\tAAAAAA111111 is active.\n");
OSTimeDly(OS_TICKS_PER_SEC);
}
}
void TaskStartyyb(void *yydata) reentrant
{
yydata=yydata;
for(;;)
{
PrintStr("\tBBBBBB333333 is active.\n");
OSTimeDly(3*OS_TICKS_PER_SEC);
}
}
void TaskStartyyc(void *yydata) reentrant
{
yydata=yydata;
for(;;)
{
PrintStr("\tCCCCCC666666 is active.\n");
OSTimeDly(6*OS_TICKS_PER_SEC);
}
}
void TaskStartyy(void *yydata)
{
INT8U err;
unsigned char *msg;
while(1)
{
msg = OSSemPend(CommQ, 0, &err);
LED0=1;
OSTimeDly(6*OS_TICKS_PER_SEC);
LED0=0;
OSTimeDly(6*OS_TICKS_PER_SEC);
}
}
*/
void TaskStartyya(void *yydata)
{
//int i=2;
//unsigned char a[2]={1,2,3} ;
yydata =yydata;
while(1)
{
OSTimeDly(30);
OSSemPost(sem1);
}
}
void TaskStartyyb(void *yydata)
{ char err;
yydata=yydata;
//unsigned char *msg;
while(1)
{ OSSemPend(sem1, 0, &err);
PrintStr("111121111\n");
switch(i)
{
case 0:LED0=!LED5; PrintStr("0\n");
case 1:LED0=!LED0;LED1=!LED0;PrintStr("1\n");
case 2:LED1=!LED1;LED2=!LED1;PrintStr("2\n");
case 3:LED2=!LED2;LED3=!LED2;PrintStr("3\n");
case 4:LED3=!LED3;LED4=!LED3; PrintStr("4\n");
}
i++;
if(i>4) i=0;
//OSTimeDly(5);
//LED0=0;
//OSTimeDly(50);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -