📄 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"
#include "display.h"
/*
*********************************************************************************************************
* CONSTANTS
*********************************************************************************************************
*/
#define TASK_STK_SIZE 512 /* Size of each task's stacks (# of WORDs) */
#define N_TASKS 10 /* Number of identical tasks */
/*
*********************************************************************************************************
* VARIABLES
*********************************************************************************************************
*/
OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; /* Tasks stacks */
OS_STK TaskStartStk[TASK_STK_SIZE];
char TaskData[N_TASKS]; /* Parameters to pass to each task */
OS_EVENT *RandomSem;
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void Task(void *pd) reentrant; /* Function prototypes of tasks */
void TaskStart(void *pdata) reentrant; /* Function prototypes of Startup task */
static void TaskStartCreateTasks(void) reentrant;
unsigned char HexToAscii (unsigned char num) reentrant;
/*
*********************************************************************************************************
* MAIN
*********************************************************************************************************
*/
void main (void)
{
OSInit(); /* Initialize uC/OS-II */
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
OSStart(); /* Start multitasking */
}
/*
*********************************************************************************************************
* STARTUP TASK
*********************************************************************************************************
*/
void TaskStart (void *pdata) reentrant
{
INT8U i = 0;
INT32U time = 0;
pdata = pdata; /* Prevent compiler warning */
nt7606_init();
OS_ENTER_CRITICAL();
// clock init
TMOD = 0x11;
ET0 = 1;
TR0 = 1;
OS_EXIT_CRITICAL();
OSStatInit(); /* Initialize uC/OS-II's statistics */
TaskStartCreateTasks(); /* Create all the application tasks */
i = 0;
OSTimeSet(0);
while (1)
{
time = OSTimeGet() / 20;
movcur(1, 5);
if ((time / 1000) > 0)
{
putch(HexToAscii(time / 1000));
}
else
{
putch('0');
}
if ((time % 1000 / 100) > 0)
{
putch(HexToAscii(time % 1000 / 100));
}
else
{
putch('0');
}
putch(HexToAscii(time % 100 / 10));
putch(HexToAscii(time % 10));
putch('s');
OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second */
}
}
/*
*********************************************************************************************************
* CREATE TASKS
*********************************************************************************************************
*/
static void TaskStartCreateTasks (void) reentrant
{
INT8U i;
for (i = 0; i < N_TASKS; i++) { /* Create N_TASKS identical tasks */
TaskData[i] = '0' + i; /* Each task will display its own letter */
OSTaskCreate(Task, (void *)&TaskData[i], &TaskStk[i][TASK_STK_SIZE - 1], i + 1);
}
}
/*
*********************************************************************************************************
* TASKS
*********************************************************************************************************
*/
void Task (void *pd) reentrant
{
INT8U i;
INT8U * p;
//pdata = pdata;
i = 0;
for (;;) {
OSTimeDly(OS_TICKS_PER_SEC); /* Delay 1 clock tick */
i = TL0 % 17;
if (i == 0)
{
i = 16;
}
movcur(2, i);
p = (char *)pd;
putch(*p);
}
}
unsigned char HexToAscii (unsigned char num) reentrant
{
num &= 0x0F;
if (num < 10)
{
return (num + 0x30);
}
else
{
return (num + 0x37);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -