ex1.c

来自「移植到C8051F020的ucos2的源代码在C8051F020目标板上运行5小」· C语言 代码 · 共 97 行

C
97
字号
#include <includes.h>
#include <cygnalcon.h>




void TaskA(void*) reentrant;
void TaskB(void*) reentrant;
void TaskC(void*) reentrant;
void TaskD(void*) reentrant;

OS_STK TaskStartStkA[MaxStkSize];//注意:在ASM文件中设置?STACK空间为40H即64。
OS_STK TaskStartStkB[MaxStkSize];
OS_STK TaskStartStkC[MaxStkSize];
OS_STK TaskStartStkD[MaxStkSize];

void main(void)
{	

	config();

    OSInit();

    InitTimer0();

    
    OSTaskCreate(TaskA, (void *)0, TaskStartStkA,2);
    OSTaskCreate(TaskB, (void *)0, TaskStartStkB,3);
    OSTaskCreate(TaskC, (void *)0, TaskStartStkC,4);
	OSTaskCreate(TaskD, (void *)0, TaskStartStkD,5);
    

    OSStart();
}


void TaskA(void *pdat) reentrant
	{

    	pdat=pdat;

   	 	for(;;){
				INT8U sz=0;
				INT8U d[10]={63,6,91,79,102,109,124,7,127,103};
				for( sz=0;sz<10;sz++)
					{
						P3=d[sz];
						OSTimeDly(OS_TICKS_PER_SEC);
					}
	 	
    			}    
	}

void TaskB(void *pdat) reentrant
	{
    	pdat=pdat; 
    	
    	for(;;){

				P1=~P1;

    			OSTimeDly(5*OS_TICKS_PER_SEC);    
    			}    
	}

void TaskC(void *pdat) reentrant
	{
    	pdat=pdat; 

    	for(;;){

				P0=~P0;
        		OSTimeDly(2*OS_TICKS_PER_SEC);    
    			}    
	}

void TaskD(void *pdat) reentrant
	{	

		INT8U sx;
		INT8U e[10]={103,127,7,124,109,102,79,91,6,63};

   		pdat=pdat;
   
 		for(;;){
			
				for( sx=0;sx<10;sx++)
					{
						P2=e[sx];
						OSTimeDly(3*OS_TICKS_PER_SEC);
					}
			 			
    			}
   
	}

⌨️ 快捷键说明

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