main.c

来自「mega128-ucos285-gcc-avrstdio可以和proteus7.」· C语言 代码 · 共 88 行

C
88
字号
#include <avr/io.h>

#include "ucos_ii.h"
#include "atmega128.h"

#define OS_USER_TASK_STK_SIZE 100

OS_STK Task1Stk[OS_USER_TASK_STK_SIZE]={0};
OS_STK Task2Stk[OS_USER_TASK_STK_SIZE]={0};
OS_STK Task3Stk[OS_USER_TASK_STK_SIZE]={0};
OS_STK Task4Stk[OS_USER_TASK_STK_SIZE]={0};
OS_STK Task5Stk[OS_USER_TASK_STK_SIZE]={0};

void Task1(void *pdata)
{
 pdata=pdata;
 init_timer0();
 DDRG|=0x01;
 while(1)
    {
	 OSTimeDly(50);
	 PORTG^=0x01;
//	 OSTimeDly(50);
	}
}

void Task2(void *pdata)
{
 pdata=pdata;
 DDRG |= 0x02;
 while(1)
    {
	 OSTimeDly(100);
     PORTG^=0x02;
//	 OSTimeDly(100);
    }
}

void Task3(void *pdata)
{
 pdata=pdata;
 DDRG |= 0x04;
 while(1)
    {
	 OSTimeDly(200);        
	 PORTG^=0x04;
//	 OSTimeDly(200);	 
	}
}

void Task4(void *pdata)
{
 pdata=pdata;
 DDRG |= 0x08;
 while(1)
    {
	 OSTimeDly(400);        
	 PORTG^=0x08;
//	 OSTimeDly(400);	 
	}
}

void Task5(void *pdata)
{
 pdata=pdata;
 DDRG |= 0x10;
 while(1)
    { 
	 OSTimeDly(800);       
	 PORTG^=0x10;
//	 OSTimeDly(800);	 
	}
}

int main(void)
{
 OSInit();

 OSTaskCreate(Task1,0,&Task1Stk[OS_USER_TASK_STK_SIZE-1],1);
 OSTaskCreate(Task2,0,&Task2Stk[OS_USER_TASK_STK_SIZE-1],2);
 OSTaskCreate(Task3,0,&Task3Stk[OS_USER_TASK_STK_SIZE-1],3);
 OSTaskCreate(Task4,0,&Task4Stk[OS_USER_TASK_STK_SIZE-1],4); 
 OSTaskCreate(Task5,0,&Task5Stk[OS_USER_TASK_STK_SIZE-1],5); 

 OSStart();
 return 0;
}

⌨️ 快捷键说明

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