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

📄 light.c

📁 UCOSII源码,三星4510下面的uCOSII源码.
💻 C
字号:
#include <includes.h>
#include "stdio.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 LED1=P1^1;
	 sbit LED2=P1^2;
	  sbit LED3=P1^3;
	 
	 OS_EVENT *CommQ; 
	 void     *CommMsg[100];
	 


   	
void main(void)
{
    OSInit();
     
	
    InitTimer0();
    InitSerial();
    InitSerialBuffer();

	    CommQ = OSQCreate(&CommMsg[0],10);
    
  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) 
{
	INT8U  err;	
	int i;
	unsigned char  data0,data1,data2;
	  yydata =yydata;
	   while(1)
	   {
			for(i=0;i<4;i++)
			{  switch(i)
				{case 0:    data0=1;
				            data1=1;
				            data2=2; break;
			
			     case 1:	data0=2;
				            data1=1;
				            data2=3; break;
			
			     case 2:	data0=3;
				            data1=1;
				            data2=4;break;
			
			     case 3:	data0=2;
				            data1=0;
				            data2=2;break;
				  }
			OSTimeDly(80);
			err = OSQPost(CommQ, (unsigned char  *)&data0);
			err = OSQPost(CommQ, (unsigned char  *)&data1);
			err = OSQPost(CommQ, (unsigned char  *)&data2);
			
			}
			 
			
	   }
}

void TaskStartyyb(void *yydata) 
{   INT8U  err;
    unsigned char  *msg0,*msg1,*msg2, buf0,buf1,buf2;

	yydata=yydata;
	//msg0 = OSQPend(CommQ, 0, &err);
     while(1)
	{	  
	     msg0 = OSQPend(CommQ, 0, &err);
		 buf0 = *msg0; 
      	 msg1 = OSQPend(CommQ, 0, &err); 
		 buf1= *msg1;
		 msg2 = OSQPend(CommQ, 0, &err);  
		 buf2 = *msg2;
		 //PrintStr("Light\n");
		 switch(buf0)
		 {
		    case 1:   PrintStr("1\n");	break;
 		    case 2:   PrintStr("2\n");	break;
		    case 3:   PrintStr("3\n");	break;
		    case 4:   PrintStr("4\n");	break;
		}

		 switch(buf1)
		 {
		    case 1:   PrintStr("1\n");	break;
 		    case 2:   PrintStr("2\n");	break;
		    case 3:   PrintStr("3\n");	break;
		    case 4:   PrintStr("4\n");	break;
		}
		 switch(buf2)
		 {
		    case 1:   PrintStr("1\n");	break;
 		    case 2:   PrintStr("2\n");	break;
		    case 3:   PrintStr("3\n");	break;
		    case 4:   PrintStr("4\n");	break;
		}
		 PrintStr("\n\n\n");
		 if((buf2)!=(buf0)+(buf1))	PrintStr("Erro\n");
		   else {
		          switch(buf0)
		            {
				        case 1: if(buf1) LED1=0;else LED3=1;  PrintStr("LED1\n");break;
				        case 2: if(buf1) LED2=0;else LED3=1;  PrintStr("LED2\n");break;
				        case 3: if(buf1) LED3=0;else LED3=1;  PrintStr("LED3\n");break;
		             }
		   		 }
		 			
		  
		}  
}    


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -