📄 test0001.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -