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

📄 main.c

📁 mega128-ucos285-gcc-avrstdio可以和proteus7.4sp3一起仿真的好东西
💻 C
字号:
#include <avr/io.h>

#include "ucos_ii.h"

#define F_CPU 7372800

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;

 TIMSK&=0xFC;
 
#if OS_TICKS_PER_SEC <= (F_CPU/1024/256)
 #error "OS_TICKS_PER_SEC <  (F_CPU/1024/256) "
#endif

 OCR0=F_CPU/1024/OS_TICKS_PER_SEC;
 TCNT0=0;


 TCCR0=(1<<WGM01)|0x05;

 TIMSK|=2;
 
 DDRG|=0x01;

 while(1)
    {
	 OSTimeDly(20);
	 PORTG^=0x01;
	}
}

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

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

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

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

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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -