?? 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(); //計算CPU使用率,只在第一個被建立并運行的任務調用
#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 + -