📄 ucos.c
字号:
#include"includes.h"
OS_STK Taskstk[3][128];
OS_EVENT *Mailbox1,*Mailbox2;
//OS_EVENT *sem;
INT8U key1[2],key2[2];
void Task_1(void *osdata) reentrant;
void Task_2(void *osdata) reentrant;
void Task_3(void *osdata) reentrant;
void main ()
{
OSInit();
InitTimer0();
OSTaskCreate(Task_1,(void *)0,&Taskstk[0][0],0);
OSTaskCreate(Task_2,(void *)0,&Taskstk[1][0],1);
OSTaskCreate(Task_3,(void *)0,&Taskstk[2][0],2);
Mailbox1=OSMboxCreate((void *)0);
Mailbox2=OSMboxCreate((void *)0);
// sem=OSSemCreate(0);
// P1=0x35;
// P3_1=0;
OSStart();
}
void Task_1(void *osdata) reentrant
{
INT8U i,err,*key,os_p1,on=0x10;
i=*(int *)osdata;
EA=1;
for(;;)
{
//for(;;);
key=OSMboxPend(Mailbox1,0,&err);
if(err==OS_NO_ERR&&key!=(void *)0)
{
if(*key!=on)
{
on=*key;
os_p1=*key;
P1=os_p1;
}
// P1=on;
}
key=OSMboxPend(Mailbox2,0,&err);
if(err==OS_NO_ERR&&key!=(void *)0)
{
if(*key==0)
{
os_p1=os_p1+1;
if(os_p1==16)
os_p1=0;
P1=os_p1;
}
if(*key==1)
{
os_p1=os_p1-1;
if(os_p1==0)
os_p1=16;
P1=os_p1;
}
}
//OSTaskResume(2);
// OSSemPost(sem);
OSTimeDlyResume (1);
}
}
void Task_2(void *osdata) reentrant
{
INT8U i,err;
i=*(int *)osdata;
for(;;)
{
key1[0]=P1;
key1[0]=key1[0]>>4;
//P1=key1[0];
//for(;;);
err=OSMboxPost(Mailbox1,key1);
//P1=*key;
// OSTaskSuspend(OS_PRIO_SELF);
OSTimeDly(1);
// OSSemPend(sem,0,&err);
}
}
void Task_3(void *osdata) reentrant
{
INT8U i,err;
i=*(int *)osdata;
for(;;)
{
if(P3_0==0)
key2[0]=0;
else if(P3_1==0)
key2[0]=1;
else
key2[0]=2;
for(;;)
{
if((P3_0==1)&&(P3_1==1))
break;
}
err=OSMboxPost(Mailbox2,key2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -