📄 ex1.c
字号:
#include <includes.h>
#include <serial.h>
void TaskA(void*) reentrant;
void TaskB(void*) reentrant;
void TaskC(void*) reentrant;
void TaskD(void*) reentrant;
void TaskE(void*) reentrant;
OS_STK TaskStartStkA[MaxStkSize];//注意:在ASM文件中设置?STACK空间为40H即64。
OS_STK TaskStartStkB[MaxStkSize];
OS_STK TaskStartStkC[MaxStkSize];
OS_STK TaskStartStkD[MaxStkSize];
OS_STK TaskStartStkE[MaxStkSize];
void main(void)
{
OSInit();
InitTimer0();
InitSerial();
InitSerialBuffer();
OSTaskCreate(TaskA, (void *)0, TaskStartStkA,2);
OSTaskCreate(TaskB, (void *)0, TaskStartStkB,3);
OSTaskCreate(TaskC, (void *)0, TaskStartStkC,4);
OSTaskCreate(TaskD, (void *)0, TaskStartStkD,5);
OSTaskCreate(TaskE, (void *)0, TaskStartStkE,6);
OSStart();
}
void TaskA(void *pdat) reentrant
{
pdat=pdat;
PrintStr("\nuC/OS-II is running.\n");
for(;;){
PrintStr("Task A is active.\n");
OSTimeDly(0.1*OS_TICKS_PER_SEC);
}
}
void TaskB(void *pdat) reentrant
{
pdat=pdat;
for(;;){
PrintStr("Task B is active.\n");
OSTimeDly(0.2*OS_TICKS_PER_SEC);
}
}
void TaskC(void *pdat) reentrant
{
pdat=pdat;
for(;;){
PrintStr("Task C is active.\n\n");
OSTimeDly(4*OS_TICKS_PER_SEC);
}
}
void TaskD(void *pdat) reentrant
{ int i,j;
pdat=pdat;
for(;;){
PrintStr("Task D is active.\n");
for(i=0;i<10;i++){
for(j=0;j<1000;j++){}
PrintStr("Hello,are you OK??\n");
}
OSTimeDly(8*OS_TICKS_PER_SEC);
}
}
void TaskE(void *pdat) reentrant
{ int i,j;
pdat=pdat;
for(;;){
PrintStr("Task E is active.\n");
for(i=0;i<100;i++){
for(j=0;j<100;j++){}
PrintChar('0'+i);
PrintChar('\t');
if(i%20==0)PrintChar('\n');
}
PrintChar('\n');
OSTimeDly(OS_TICKS_PER_SEC);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -