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

📄 test1.c

📁 比较老的ucos最初的版本
💻 C
字号:
/*
************************************************************
*                         TEST1.C
*                      uCOS EXAMPLE
************************************************************
*/
#include "INCLUDES.H"
#define          OS_MAX_TASKS    10
#define          STK_SIZE       500
OS_TCB           OSTCBTbl[OS_MAX_TASKS];
UWORD            OSIdleTaskStk[STK_SIZE];
UWORD            Stk1[STK_SIZE];
UWORD            Stk2[STK_SIZE];
UWORD            Stk3[STK_SIZE];
UWORD            Stk4[STK_SIZE];
UWORD            Stk5[STK_SIZE];
char             Data1 = '1';
char             Data2 = '2';
char             Data3 = '3';
char             Data4 = '4';
char             Data5 = '5';
void far         Task(void *data);
void interrupt (*OldTickISR)(void);

void main(void)
{
    UBYTE err;


    clrscr();
    OldTickISR = getvect(0x08);
    setvect(UCOS, (void interrupt (*)(void))OSCtxSw);
    setvect(0xF2, OldTickISR);
    OSInit(&OSIdleTaskStk[STK_SIZE], OS_MAX_TASKS);
    OSTaskCreate(Task, (void *)&Data1, (void *)&Stk1[STK_SIZE], 1);
    OSTaskCreate(Task, (void *)&Data2, (void *)&Stk2[STK_SIZE], 2);
    OSTaskCreate(Task, (void *)&Data3, (void *)&Stk3[STK_SIZE], 3);
    OSTaskCreate(Task, (void *)&Data4, (void *)&Stk4[STK_SIZE], 4);
    OSTaskCreate(Task, (void *)&Data5, (void *)&Stk5[STK_SIZE], 5);
    OSStart();
}

void far Task(void *data)
{
    setvect(0x08, (void interrupt (*)(void))OSTickISR);
    while (1) {
        OSTimeDly(1);
        gotoxy(rand() % 79 + 1, rand() % 25 + 1);
	putch(*(char *)data);
        if (kbhit()) {
            setvect(0x08, OldTickISR);
            exit(0);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -