📄 caozuo.c
字号:
#include<rtx51tny.h>
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit light0=P0^0;
sbit light1=P0^1;
sbit light2=P0^2;
sbit switch0=P1^0;
int counter0;
int counter1;
void delay(uint k)
{uchar idata j;
unsigned int i;
for(i=0;i<k;i++)
for(j=0;j<255;j++);
}
void job0 (void)_task_ 0
{ os_create_task(1);
os_create_task(2);
while(1)
{ counter0++;
light0=0;
if(switch0==1)
os_send_signal(2);//如果按下,就向任务2发送信号
os_wait(K_TMO,100,0);//向内核发出让出处理器的信号,将任务挂起。(处理器这时处理其他
//任务了)参数1000是延时的tick数。到延时结束后任务就返回到处于
//就绪的状态并可被内核调度执行了。
light2=0;
}
}
void job1 (void) _task_ 1
{ while(1)
{ counter1++;
light0=1;
os_wait(K_TMO,100,0);
}
}
void job2 (void)_task_ 2
{os_create_task(1);
while(1)
{ os_wait(K_SIG,0,0);//受到信号,该任务由挂起状态就绪的状态并可被内核调度执行。
counter0++;
light1=0;
delay(100);
light1=1;
delay(100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -