📄 main.c.svn-base
字号:
#include "includes.h"
#include "HAL.h"
#define TASK_STK_SIZE 48 /* 定义任务堆栈大小,单位为字/16*/
OS_STK TaskStartStkA[TASK_STK_SIZE];
OS_STK TaskStartStkB[TASK_STK_SIZE];
OS_STK TaskStartStkC[TASK_STK_SIZE];
OS_FLAG_GRP *TaskStatus;
static void StartCreateTasks(void);
void TaskStartA(void *data); /* 前导声明任务(函数) */
void TaskStartB(void *data); /* 前导声明任务(函数) */
void TaskStartC(void *data); /* 前导声明任务(函数) */
INT8U err;
void main (void)
{
StateInit( );
OSInit(); /* 初始化uCOS-II */
TaskStatus = OSFlagCreate(0x00, &err);
StartCreateTasks( );
OSStart(); /* 开始任务调度 */
}
static void StartCreateTasks(void)
{
OSTaskCreateExt(
TaskStartA,
(void *)0,
&TaskStartStkA[TASK_STK_SIZE - 1],
0,
0,
&TaskStartStkA[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR
);
OSTaskCreateExt(
TaskStartB,
(void *)0,
&TaskStartStkB[TASK_STK_SIZE - 1],
1,
1,
&TaskStartStkB[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR
);
OSTaskCreateExt(
TaskStartC,
(void *)0,
&TaskStartStkC[TASK_STK_SIZE - 1],
2,
2,
&TaskStartStkC[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR
);
}
void TaskStartA (void *pdata)
{
OS_STK_DATA data;
INT8U i;
pdata = pdata;
HalTimerInit( );
OSFlagPost(TaskStatus,0x01,OS_FLAG_SET, &err);
while (1)
{
for (i = 0; i < 3; i++)
{
err = OSTaskStkChk(i, &data);
if (err == OS_NO_ERR)
{
Uart0SendData((INT8U *)&data.OSFree, sizeof(INT32U));
Uart0SendData((INT8U *)&data.OSUsed, sizeof(INT32U));
}
}
OSTimeDlyHMSM(0, 0, 0, 100);
}
}
void TaskStartB (void *pdata)
{
while (1)
{
OSFlagPend(TaskStatus,
0x01,
OS_FLAG_WAIT_SET_ALL + OS_FLAG_CONSUME,
0,
&err);
if(err==OS_NO_ERR)
{
HalOpenLed(1);
OSTimeDlyHMSM(0,0,1,0);
OSFlagPost(TaskStatus,0x02, OS_FLAG_SET, &err);
HalCloseLed(1);
}
}
}
void TaskStartC(void *pdata)
{
while (1)
{
OSFlagPend(TaskStatus,
0x02,
OS_FLAG_WAIT_SET_ALL + OS_FLAG_CONSUME,
0,
&err);
if(err==OS_NO_ERR)
{
HalOpenLed(2);
OSTimeDlyHMSM(0,0,1,0);
OSFlagPost(TaskStatus,0x01, OS_FLAG_SET, &err);
HalCloseLed(2);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -