📄 test.c
字号:
/*Example,porting ucosii to simuos 20041123*/
/*Author:lmjx
**Email :limiao@yeah.net
**You can FREE use this copy for LEARN or EDUCATE purpose.
**For more information access www.mshowtec.com
**/
#include "includes.h"
#include "bmp.h"
#include "../../simulator/export.h"
#define TASK_STK_SIZE 1024
OS_STK TestTaskStk1[TASK_STK_SIZE];
OS_STK TestTaskStk2[TASK_STK_SIZE];
OS_STK TestTaskStk3[TASK_STK_SIZE];
void TestTask1(void *pdata);
void TestTask2(void *pdata);
void TestTask3(void *pdata);
/*OS Entry,You CANNOT change the Function declaration:void startup(void)*/
void startup(void)
{
printf("simuos v1.0 for ucosii porting\n");
OSInit();
OSTaskCreate(TestTask1, (void *) 11, &TestTaskStk1[TASK_STK_SIZE], 11);
PC_IntVectSet(2, OSTickISR);
OSStart();
}
void TestTask1(void *pdata)
{
unsigned char i = 1;
printf("[ucosii tick :%04u] Task 1 Begin to Run\n", OSTime);
#if OS_TASK_STAT_EN > 0
OSStatInit();
#endif
printf("[ucosii tick :%04u] Task 1 Creater Task 2\n", OSTime);
OSTaskCreate(TestTask2, (void *) 22, &TestTaskStk2[TASK_STK_SIZE], 22);
printf("[ucosii tick :%04u] Task 1 Creater Task 3\n", OSTime);
OSTaskCreate(TestTask3, (void *) 33, &TestTaskStk3[TASK_STK_SIZE], 33);
while (1)
{
if(i == 5)i = 1;
printf("[ucosii tick :%04u] Task 1 Draw Frame 1\n", OSTime);
BMPDraw(bmp1,i++,0,FULLSCREENSIZE);
simDrawScreen();
printf("[ucosii tick :%04u] Task 1 Dly One Tick\n", OSTime);
OSTimeDly(1);
printf("[ucosii tick :%04u] Task 1 Resume Task 2\n", OSTime);
OSTaskResume(22);
printf("[ucosii tick :%04u] Task 1 Suspend it self\n", OSTime);
OSTaskSuspend(OS_PRIO_SELF);
}
}
void TestTask2(void *pdata)
{
unsigned char i = 4;
printf("[ucosii tick :%04u] Task 2 Suspend it self\n", OSTime);
OSTaskSuspend(OS_PRIO_SELF);
while (1)
{
if(i == 0)i = 4;
printf("[ucosii tick :%04u] Task 2 Draw Frame 2\n", OSTime);
BMPDraw(bmp2,i--,0,FULLSCREENSIZE);
simDrawScreen();
printf("[ucosii tick :%04u] Task 2 Dly One Tick\n", OSTime);
OSTimeDly(1);
printf("[ucosii tick :%04u] Task 2 Resume Task 3\n", OSTime);
OSTaskResume(33);
printf("[ucosii tick :%04u] Task 2 Suspend it self\n", OSTime);
OSTaskSuspend(OS_PRIO_SELF);
}
}
void TestTask3(void *pdata)
{
printf("[ucosii tick :%04u] Task 3 Suspend it self\n", OSTime);
OSTaskSuspend(OS_PRIO_SELF);
while (1)
{
printf("[ucosii tick :%04u] Task 3 Running Resume Task 1\n", OSTime);
OSTaskResume(11);
printf("[ucosii tick :%04u] Task 3 Suspend it self\n", OSTime);
OSTaskSuspend(OS_PRIO_SELF);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -