📄 ex1.c
字号:
/******************************************************************************/
/* */
/* EX1.C: 例子程序 */
/* 仿照RtxTiny2 Ex1 */
/* */
/******************************************************************************/
#include <includes.h> /* UCOSII 主头文件 */
void job0(void *yydata); /* 定义3个任务 */
void job1(void *yydata);
void job2(void *yydata);
OS_STK TaskStk[3][MaxStkSize]; /* 定义任务堆栈 */
long counter0; /* 任务0的计数器 */
long counter1; /* 任务1的计数器 */
long counter2; /* 任务2的计数器 */
void main(void)
{
OSInit();
InitTimer0();
OSTaskCreate(job0, (void *)0, (void *)&TaskStk[0][0],5);/* 建立任务0 */
OSStart(); /* 开始多任务调度 */
}
/******************************************************************************/
/* 任务0 'job0': */
/******************************************************************************/
void job0 (void *yydata) {
yydata = yydata; /* 避免编译器警告 */
OSTaskCreate(job1, (void *)0, (void *)&TaskStk[1][0], 6); /* 建立任务1 */
OSTaskCreate(job2, (void *)0, (void *)&TaskStk[2][0], 7); /* 建立任务2 */
while (1) { /* 死循环 */
counter0++; /* counter0 加一 */
OSTimeDly(2); /* 等待2个Tick */
}
}
/******************************************************************************/
/* 任务1 'job1': */
/******************************************************************************/
void job1 (void *yydata) {
long b;
yydata = yydata; /* 避免编译器警告 */
while (1) { /* 死循环 */
counter1++; /* counter1 加一 */
b++;
OSTimeDly(4); /* 等待4个Tick */
}
}
/******************************************************************************/
/* 任务 'job2': */
/******************************************************************************/
void job2 (void *yydata) {
long c;
yydata = yydata; /* 避免编译器警告 */
while (1) { /* 死循环 */
counter2++; /* counter2 加一 */
c++;
OSTimeDly(6); /* 等待6个Tick */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -