"); //-->
test.c
/*
*********************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
* All Rights Reserved
*
* EXAMPLE #1
*********************************************************************************************************
*/
#include "includes.h"
/*
*********************************************************************************************************
* CONSTANTS
*********************************************************************************************************
*/
#define TASK_STK_SIZE 512 /* Size of each task's stacks (# of WORDs) */
OS_STK MyTaskStk[TASK_STK_SIZE];
OS_STK YouTaskStk[TASK_STK_SIZE];
INT16S key;
INT8U x=0,y=0;
INT8U time=0;
void MyTask(void *data);
void YouTask(void *data);
void main (void)
{
char* s_M="M";
OSInit(); /* Initialize uC/OS-II */
PC_DOSSaveReturn(); /* Save environment to return to DOS */
PC_VectSet(uCOS, OSCtxSw); /* Install uC/OS-II's context switch vector */
OSTaskCreate(MyTask, s_M, &MyTaskStk[TASK_STK_SIZE - 1], 0);
OSStart(); /* Start multitasking */
}
/*
*********************************************************************************************************
* STARTUP TASK
*********************************************************************************************************
*/
void MyTask(void *pdata)
{
char* s_Y="Y";
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
pdata = pdata; /* Prevent compiler warning */
OS_ENTER_CRITICAL();
PC_VectSet(0x08, OSTickISR); /* Install uC/OS-II's clock tick ISR */
PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */
OS_EXIT_CRITICAL();
OSStatInit(); /* Initialize uC/OS-II's statistics */
OSTaskCreate(&YouTask, s_Y, &YouTaskStk[TASK_STK_SIZE - 1], 2);
for (;;)
{
if(x>50)
{
x=0;
y+=2;
}
PC_DispChar(
x,y,
*(char*)pdata,
DISP_BGND_BLACK+DISP_FGND_WHITE
);
x+=1;
if (PC_GetKey(&key) == TRUE) { /* See if key has been pressed */
if (key == 0x1B) { /* Yes, see if it's the ESCAPE key */
PC_DOSReturn(); /* Return to DOS */
}
}
OSTimeDlyHMSM(0, 0, 3, 0); /* Wait one second */
}
}
void YouTask(void *pdata)
{
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
pdata = pdata; /* Prevent compiler warning */
for (;;)
{
if(time==20)
{
OSTaskSuspend(0);
}
if(time==40)
{
OSTaskResume(0);
}
time+=1;
if(x>50)
{
x=0;
y+=2;
}
PC_DispChar(
x,y,
*(char*)pdata,
DISP_BGND_BLACK+DISP_FGND_WHITE
);
x+=1;
OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */
}
}
运行

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
uCOSii 在Coldfire MCF52235 上的移植
uCosII中文版电子书
uCOS-II在ARM移植中的中断处理
请问各位大侠:ucosii下载到目标板是否还需要bootlodaer啊?
ucosii所使用的编译工具borland c软件
第30讲 UCOSII入门实验
ucosII在51内核单片机上的移植
51 ucosii源代码
请问有谁实现了将uCOSII移植到P89C668上?
7个基于STM32单片机的精彩设计实例,附原理图、代码等相关资料
[求助]谁有44B0X上的ucosII移植成功的mcp工程?发一个给我吧!
uC/OS-II嵌入式系统在C8051F060上的应用
UCOSII的PC程序应用
UCOSii
ucosii在各种处理器上的应用
从入门到开发,STM32F407单片机全中文教程
基于ARM7、AVR、UCOSII的发电厂大型除尘控制器设计方案
uCOSII V2.76
ICCAVR下移植于ATMEGA32的UCOSII
STM32F407单片机使用攻略:中文手册、实战问答20篇