⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caozuo.c

📁 51操作系统RTX51应用,对任务的调度会有很好的了解,很适合初学操作系统的人,另外加了PROTUES对操作系统的仿真
💻 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 + -