📄 main.c
字号:
#include "includes.h"
#include "Timer.h"
#define MAX_STK_SIZE 50
void Sys_init(void);
void timer_init(void);
void System_begin(void);
void TaskA(void* data);
void TaskB(void* data);
void TaskC(void* data);
void Main(void);
OS_STK TaskAStk[MAX_STK_SIZE+1];
OS_STK TaskBStk[MAX_STK_SIZE+1];
OS_STK TaskCStk[MAX_STK_SIZE+1];
OS_EVENT *sem;
void Main(void)
{
//System_begin();
OS_ENTER_CRITICAL();
OSInit();
sem=OSSemCreate(1);
OSTaskCreateExt(TaskA,(void *)0,&TaskAStk[MAX_STK_SIZE],3,3,TaskAStk,50,(void *)0,OS_TASK_OPT_STK_CHK+OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskB,(void *)0,&TaskBStk[MAX_STK_SIZE],4,4,TaskBStk,50,(void *)0,OS_TASK_OPT_STK_CHK+OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskC,(void *)0,&TaskCStk[MAX_STK_SIZE],5,5,TaskCStk,50,(void *)0,OS_TASK_OPT_STK_CHK+OS_TASK_OPT_STK_CLR);
OSStart();
}
void System_begin()
{
rSYSCFG=CACHECFG;// Using 8KB Cache
Port_Init();
Uart_Init(0,115200);
Led_Display(0xf);
Uart_Select(0); //Select UART0
Beep(0x1);
Uart_Printf("\n\n*************************************************************************");
Beep(0x0);
Uart_Printf("\n\n*************************************************************************");
Uart_Printf("\n OS_KERNEL : uC/OS-II ");
Uart_Printf("\n The Real-Time Kernel ");
Uart_Printf("\n Version 2.80 ");
Uart_Printf("\n ");
Uart_Printf("\n (c) Copyright 1992-2005, Jean J. Labrosse, Weston, FL ");
Uart_Printf("\n All Rights Reserved ");
Uart_Printf("\n UART Config--COM:115.2kbps,8Bit,NP,UART0 ");
Uart_Printf("\n----------------Begin to Study Embedded System with UCOS--------------- ");
Uart_Printf("\nuC/OS begin init........\n");
Led_Display(0x0);
}
void TaskA(void *data)
{
INT8U errora;
data=data;
Sys_init();
timer_init();
for(;;)
{
OSSemPend(sem,0,&errora);
OS_ENTER_CRITICAL();
Uart_Printf("\nA");
OS_EXIT_CRITICAL();
OSSemPost(sem);
OSTimeDly(2);
}
}
void TaskB(void *data)
{
INT8U errora;
data=data;
for(;;)
{
OSSemPend(sem,0,&errora);
OS_ENTER_CRITICAL();
Uart_Printf("\nB");
OS_EXIT_CRITICAL();
OSSemPost(sem);
OSTimeDly(2);
}
}
void TaskC(void *data)
{
INT8U errora;
data = data;
for(;;)
{
OSSemPend(sem,0,&errora);
OS_ENTER_CRITICAL();
Uart_Printf("\nC");
OS_EXIT_CRITICAL();
OSSemPost(sem);
OSTimeDly(2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -