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

📄 main.c

📁 avr ucos 代码 测试环境:source insight WINAVR 4个进程
💻 C
字号:
#include <avr/io.h> 

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

#define maxzhan  74
OS_STK TestTaskStk0[maxzhan]; 
OS_STK TestTaskStk1[maxzhan]; 
OS_STK TestTaskStk2[maxzhan]; 
OS_STK TestTaskStk3[maxzhan]; 

void TestTask0(void* pdata); 
void TestTask1(void* pdata); 
void TestTask2(void* pdata); 
void TestTask3(void* pdata); 

int main(void) 
{ 
 DDRF=0x0F;/*PORTC口设置为输出*/ 
 PORTF=0x0F;/*PORTC口全部置为高电平*/ 
 OSInit(); 
 OSTaskCreate(TestTask0,(void*)0,&TestTaskStk0[maxzhan-1],0); 
 OSTaskCreate(TestTask1,(void*)0,&TestTaskStk1[maxzhan-1],1); 
 OSTaskCreate(TestTask2,(void*)0,&TestTaskStk2[maxzhan-1],2); 
 OSTaskCreate(TestTask3,(void*)0,&TestTaskStk3[maxzhan-1],3); 
 OSStart(); 
} 

void TestTask0(void* pdata) 
{ 
 INT8U LED=0x01; 
 pdata=pdata; 
 init_timer0();/*初始化时钟节拍中断*/ 
 while(1) 
 { 
  PORTF^=LED; 
  OSTimeDlyHMSM(0,0,1,0);/*PA0口电平每隔1秒改变一次*/ 
 } 
} 

void TestTask1(void* pdata) 
{ 
 INT8U LED=0x02; 
 pdata=pdata; 
 while(1) 
 { 
  PORTF^=LED; 
  OSTimeDlyHMSM(0,0,2,0);/*PC0口电平每隔3秒改变一次*/ 
 } 
} 
void TestTask2(void* pdata) 
{ 
 INT8U LED=0x04; 
 pdata=pdata; 
 while(1) 
 { 
  PORTF^=LED; 
  OSTimeDlyHMSM(0,0,3,0);/*PC0口电平每隔3秒改变一次*/ 
 } 
} 
void TestTask3(void* pdata) 
{ 
 INT8U LED=0x08; 
 pdata=pdata; 
 while(1) 
 { 
  PORTF^=LED; 
  OSTimeDlyHMSM(0,0,4,0);/*PC0口电平每隔3秒改变一次*/ 
 } 
} 

⌨️ 快捷键说明

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