📄 readdt.c
字号:
/* 庆歹拳老 */
#include "..\\includes.h"
#include "..\\drivers\\lcd.h"
#include "..\\drivers\\CommRtos.h"
/* 惑荐 */
#define TASK_STK_SIZE 100 /* Task狼 胶琶 荤捞令 */
#define ADDTASK_COUNT 10 /* ADD TASK狼 荐 */
#define ADDTASK_START_PRIO 10 /* ADD TASK狼 PRIO狼 矫累蔼 */
/* Data 历厘侩 备炼眉 */
typedef struct st_NumRange
{
INT8U Start;
INT8U End;
INT8U Prio;
} stNumRange;
/* 傈开函荐 */
OS_STK TaskStartStk[TASK_STK_SIZE], /* 矫累 Task狼 胶琶 */
AddTaskStk[ADDTASK_COUNT][TASK_STK_SIZE]; /* Add Task狼 荐父怒 硅凯阑 捞瞒盔 硅凯肺 积己 */
stNumRange TaskData[ADDTASK_COUNT]; /* Add Task肺 傈崔登绰 颇扼固磐侩 备炼眉 硅凯 */
INT16U AddTotalSum; /* 阿阿狼 Add Task甸捞 歹茄 蔼阑 穿利且 函荐 */
INT8U EndTaskCount; /* EndTaskCount蔼捞 ADD Task狼 荐客 鞍栏搁 辆丰 */
/* 窃荐 */
void TaskStart(void * aData);
void AddTask(void * aData);
void PrintScr(char * aData);
/* Extern 窃荐 */
extern void TimeTickInit(void);
extern INT8U OSTaskSuspend(INT8U prio);
/*extern void PrintScr(char * aData);*/
/*
void PrintScr(char * aData)
{
while(*aData)
CommPutChar(*aData++, 0);
}*/
/* 家胶 */
void main (void)
{
OSInit(); /* uC/OS-II甫 檬扁拳茄促 */
OSTaskCreate(TaskStart, (void *)0, (void *)&TaskStartStk[TASK_STK_SIZE - 1], ADDTASK_COUNT+ADDTASK_START_PRIO); /* 弥檬 怕胶农 积己 */
OSStart(); /* uC/OS-II 扁悼 */
}
/* Task 矫累窃荐 */
void TaskStart(void * aData)
{
BYTE i,
ErrNum=0;
char DispBuff[30];
disable(); /* 牢磐反飘 厚劝己拳 */
TimeTickInit(); /* 鸥烙 平侩 鸥捞赣 檬扁拳 */
enable(); /* 牢磐反飘 劝己拳 */
CommInit(); /* Comm 檬扁拳 */
/* 傈开函荐 檬扁拳 */
AddTotalSum=0;
EndTaskCount=0;
/* Task Data 历厘 棺 AddTask 积己 */
for(i=0;i<ADDTASK_COUNT;i++)
{
/* Add且 Range客 阿 Task狼 ID甫 历厘茄促. */
TaskData[i].Start=i*10+1;
TaskData[i].End=TaskData[i].Start+9;
TaskData[i].Prio=ADDTASK_START_PRIO+i;
/* AddTask甫 积己茄促. */
ErrNum += OSTaskCreate( AddTask, (void *)&TaskData[i],
(void *)&AddTaskStk[i][TASK_STK_SIZE - 1],
TaskData[i].Prio);
}
/* 俊矾啊 惯积矫 辆丰 窍哥, 俊矾啊 惯积窍瘤 臼栏搁, 葛电 AddTask啊 辆丰且锭鳖瘤 措扁 */
if(ErrNum)
{
sprintf(DispBuff, "Error : OSTaskCreate");
PrintScr(DispBuff);
}
else
{
/* 券康 巩备 */
sprintf(DispBuff, "#################################\r\n");
PrintScr(DispBuff);
sprintf(DispBuff, "# Welcome to AddTask Program #\r\n");
PrintScr(DispBuff);
sprintf(DispBuff, "# Kwangwoon Univ. #\r\n");
PrintScr(DispBuff);
sprintf(DispBuff, "#################################\r\n\n");
PrintScr(DispBuff);
/* 1檬付促 EndTaskCount甫 眉农窍咯 葛电 AddTask啊 辆丰 登菌促搁 矫累 Task档 辆丰 茄促. */
for(;EndTaskCount<ADDTASK_COUNT;)
OSTimeDlyHMSM(0,0,1,0); /* 泅犁 抛胶农甫 瘤楷窍咯 窍困狼 Prio甫 啊柳 Task啊 角青登霸 茄促. */
/* AddTask啊 葛滴 辆丰 登菌栏骨肺 搬苞甫 免仿窍绊 辆丰 茄促. */
sprintf(DispBuff, "\r\n#### Total Sum : %8d ####\r\n", AddTotalSum);
PrintScr(DispBuff);
}
}
/* 涝仿罐篮 裹困甫 1究 刘啊矫虐哥 歹窍绰 AddTask 窃荐 */
void AddTask(void * aData)
{
stNumRange * Range;
char DispBuff[30];
BYTE i=0;
INT16U AddSum=0;
Range=(stNumRange *) aData;
sprintf(DispBuff, "Task ID : %3d", Range->Prio);
PrintScr(DispBuff);
sprintf(DispBuff, " From : %3d To : %3d", Range->Start, Range->End);
PrintScr(DispBuff);
for (;;)
{
if(i==0)
{
for(i=Range->Start;i<=Range->End;i++)
AddSum+=i;
sprintf(DispBuff, " Local Sum : %5d\r\n", AddSum);
PrintScr(DispBuff);
AddTotalSum+=AddSum;
EndTaskCount++;
}
OSTaskSuspend(Range->Prio) ;
}
}
void PrintScr(char * aData)
{
while(*aData)
CommPutChar(*aData++, 0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -