⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 最新版的ucos的模拟器了
💻 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 + -