📄 test.c
字号:
/*
*********************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
* All Rights Reserved
*
* EXAMPLE #1
*********************************************************************************************************
*/
#include "config.h"
#include "harder.h"
#include "libvic.h"
#include "libuart.h"
/*
*********************************************************************************************************
* CONSTANTS
*********************************************************************************************************
*/
#define TASK_STK_SIZE 128 /* Size of each task's stacks (# of WORDs) */
/*
*********************************************************************************************************
* VARIABLES
*********************************************************************************************************
*/
OS_STK TaskStartStk[TASK_STK_SIZE];
OS_STK Task1Stk[TASK_STK_SIZE];
OS_STK Task2Stk[TASK_STK_SIZE];
OS_STK Task3Stk[TASK_STK_SIZE];
OS_STK Task4Stk[TASK_STK_SIZE];
OS_STK Task5Stk[TASK_STK_SIZE];
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void Task1(void *data); /* Function prototypes of tasks */
void Task2(void *data); /* Function prototypes of tasks */
void Task3(void *data); /* Function prototypes of tasks */
void Task4(void *data); /* Function prototypes of tasks */
void Task5(void *data); /* Function prototypes of tasks */
void TaskStart(void *data); /* Function prototypes of Startup task */
/*$PAGE*/
/*
*********************************************************************************************************
* MAIN
*********************************************************************************************************
*/
void TargetInit(void);
int main (void)
{
OSInit();
Beep(3); /* Initialize uC/OS-II */
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart(); /* Start multitasking */
}
/*
*********************************************************************************************************
* STARTUP TASK
*********************************************************************************************************
*/
void TaskStart (void *pdata)
{
pdata = pdata; /* Prevent compiler warning */
TargetInit();
ComInit(COM1,115200);
OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1], 1);
OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE - 1], 2);
OSTaskCreate(Task3, (void *)0, &Task3Stk[TASK_STK_SIZE - 1], 3);
OSTaskCreate(Task4, (void *)0, &Task4Stk[TASK_STK_SIZE - 1], 4);
OSTaskCreate(Task5, (void *)0, &Task5Stk[TASK_STK_SIZE - 1], 5);
OSTaskDel(0);
}
void Task1 (void *pdata)
{
pdata = pdata; /* Prevent compiler warning */
SetPinMode(LED1,0,0);
SetPinMode(LED2,0,0);
SetPinMode(LED3,0,0);
SetPinMode(LED4,0,0);
SetPin(LED1);
SetPin(LED2);
SetPin(LED3);
SetPin(LED4);
for (;;)
{
CommSendString(COM1,"\r\nTask1");
OSTimeDlyHMSM(0, 0,1, 0); /* Wait one second */
CplPin(LED1);
OSTimeDlyHMSM(0, 0,1, 0); /* Wait one second */
CplPin(LED2);
OSTimeDlyHMSM(0, 0,1, 0); /* Wait one second */
CplPin(LED3);
OSTimeDlyHMSM(0, 0,1, 0); /* Wait one second */
CplPin(LED4);
}
}
void Task2 (void *pdata)
{
int i=0;
for (;;)
{
CommSendString(COM1,"\r\nTask2");
if(i>=16)
i=0;
Display(i++);
OSTimeDlyHMSM(0, 0,1,0);
}
}
void Task3 (void *pdata)
{
pdata = pdata; /* Prevent compiler warning */
for (;;)
{
ComPutChar(COM1,ComGetChar(COM1));
OSTimeDlyHMSM(0, 0,1,0); /* Wait one second */
}
}
void Task4 (void *pdata)
{
pdata = pdata;
for (;;)
{
CommSendString(COM1,"\r\nTask5");
OSTimeDlyHMSM(0, 0,1,0);
}
}
void Task5 (void *pdata)
{
pdata = pdata;
for (;;)
{
CommSendString(COM1,"\r\nTask5");
OSTimeDlyHMSM(0, 0,1,0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -