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

📄 testucosii.c

📁 ucos icc的驱动. 有三个任务。
💻 C
字号:
#include <avr/io.h>
#include "ucos_ii.h"
//
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};
//
volatile unsigned char t1=0;
volatile unsigned char t2=0;
//volatile unsigned char t3=0;
volatile unsigned char t4=0;
//volatile unsigned char t5=0;
//volatile unsigned char t6=0;
//
OS_EVENT *T2sem=(OS_EVENT *)0;
OS_EVENT *Tmbox=(OS_EVENT *)0;
//
struct msgTask
{
 unsigned char cnt;
 unsigned char *s;
};
//
struct msgTask T5mbox={1,"Hello"};
struct msgTask *pMsgTsk=&T5mbox;
//
void Task1(void *pdata)
{
 pdata=pdata;
/* 
#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=256-(8000000/OS_TICKS_PER_SEC/256);	//TCNT0=256-(8000000/OS_TICKS_PER_SEC/1024);
 TCCR0=0x07;		//1024分频
 TIMSK = _BV(TOIE0);
//
 MCUCR=0x10;
 SREG|=0x80;
// 
 DDRG=0x1f;
 PORTG=0x1f;
//
 while(1)
    {
	 PORTG&=0x1b;
	 OSTimeDly(33);
	 PORTG|=0x04;
	 OSTimeDly(33);
	 //OSTimeDlyHMSM(0, 0, 1, 0); 
	 t1++;
	 //PORTC^=0x10;
	 
	}
}
//
void Task2(void *pdata)
{
 //unsigned char err=0;
 pdata=pdata;
// 
 DDRC=0xff;
 PORTC=0xff;
 while(1)
    {        
		t2++;
		//OSTimeDlyHMSM(0, 0, 1, 0); 
		PORTC= ~_BV(PC6);
		PORTC= _BV(PC7);		
		OSTimeDly(40);
		PORTC= ~_BV(PC7);
		PORTC= _BV(PC6);			
		OSTimeDly(40);
	}
}
//
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);

 OSStart();
}

⌨️ 快捷键说明

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