main.c
来自「avr ucos 代码 测试环境:source insight WINAVR 2」· C语言 代码 · 共 72 行
C
72 行
#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 + =
减小字号Ctrl + -
显示快捷键?