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

📄 test1.c

📁 移植在鱼板上运行的ucos
💻 C
字号:
#include "..\4510b\includes.h"
OS_STK TestTaskStk0[100];
OS_STK TestTaskStk1[7][100];
BYTE TaskData[8];

void TestTask(void *pdata);
void TaskStartCreateTasks(void);
void C_Entry()
{
	int i;
	//init the system
	Disable_Int(nGLOBAL_INT);
	IOPMOD |= 0xFF;		// General Purpose Register Mode Select,io[0-7]--output
	IOPDATA = 0xFF;		// IO port output 0	 	
	InitInterrupt() ;	//in this function will disable global int
    UART_Initialize();  /* Initialize UART channel 0,1 */
    tm_init(TIMER_DEV0,(ONE_SECOND/OS_TICKS_PER_SEC));
    
	OSInit();
	for(i=0;i<8;i++)
		TaskData[i]=i;
	OSTaskCreate(TestTask,(void*)0,&TestTaskStk0[99],0);
	OSStart();
}

void TestTask(void *pdata)
{
	BOOLEAN led_state=FALSE;
	pdata=pdata;
	Enable_Int(nGLOBAL_INT);
	Timer0Start();
	TaskStartCreateTasks();
	while(1) {
		OSTimeDlyHMSM(0,0,1,0);
		if(led_state==FALSE)
		{
			led_state=TRUE;
			IOPDATA &= 0xFE;
		}else
		{
			led_state=FALSE;
			IOPDATA |= 0x01;
		}
	}
}

void TestTaskN(void *pdata)
{
	BYTE Temp=*((BYTE*)pdata);
	BOOLEAN led_state=FALSE;
	pdata=pdata;
	while(1) {
		OSTimeDlyHMSM(0,0,Temp+1,0);
		if(led_state==FALSE)
		{
			led_state=TRUE;
			IOPDATA &= (0xFF&(~(1<<Temp)));
		}else
		{
			led_state=FALSE;
			IOPDATA |= (1<<Temp);
		}
	}
}

void TaskStartCreateTasks(void)
{
	int i;
	for(i=1;i<8;i++)
	{
		OSTaskCreate(TestTaskN,(void*)&TaskData[i],&TestTaskStk1[i-1][99],i);
	}
}
		

⌨️ 快捷键说明

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