test0001.c
来自「uCOS 嵌入式操作系统的改进版,增加了网络通讯.」· C语言 代码 · 共 98 行
C
98 行
#include "..\keilc51\includes.h"
#if 1//#Lin
OS_STK Task_OneStk[UserMaxStkSize];
OS_STK Task_TwoStk[UserMaxStkSize];
OS_STK Task_ThreeStk[UserMaxStkSize];
OS_STK Task_TestStk[UserMaxStkSize];
void Task_One(void *testdata) reentrant;
void Task_Two(void *testdata) reentrant;
void Task_Three(void *testdata) reentrant;
void Task_Test(void *testdata) reentrant;
#endif
//data OS_STK UserSysSP_Start;
void main(void)
{
UserSysSP_Start = SP; //获取动态分配的栈底,用于计算和仿真堆栈
OSInit();
UserInitTimerZero();
#if 1//#Lin
OSTaskCreate(Task_Test, (void *)0, Task_TestStk,5);
OSTaskCreate(Task_Two, (void *)0, Task_TwoStk,7);
OSTaskCreate(Task_Three, (void *)0, Task_ThreeStk,6);
OSTaskCreate(Task_One, (void *)0, Task_OneStk,4); //#Lin@必须处于最高优先级
#endif
OSStart();
for(;;);
}
#if 1//#Lin
void Task_One(void *testdata) reentrant{
testdata = testdata;
ET0 = 1; //#Lin@启动时钟节拍中断
for(;;){
P1 ^= 0x01;
OSTimeDly(10);
P1 ^= 0x01;
OSTimeDly(10);
// OSTaskDel(6);
}
}
void Task_Two(void *testdata) reentrant{
testdata = testdata;
for(;;){
P1 ^= 0x02;
OSTimeDly(20);
P1 ^= 0x02;
OSTimeDly(20);
OSTaskSuspend(2);
}
}
void Task_Three(void *testdata) reentrant{
testdata = testdata;
for(;;){
P1 ^= 0x04;
OSTimeDly(40);
P1 ^= 0x04;
OSTimeDly(40);
OSTaskResume(2);
}
}
void Task_Test(void *testdata) reentrant{
testdata = testdata;
for(;;){
P1 ^= 0x08;
OSTimeDly(80);
P1 ^= 0x08;
OSTimeDly(40);
}
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?