📄 test.c.bak
字号:
PC_DispStr( 0, 15, " |-||\\/\\/\\/\\| | ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 16, " | | | | ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 17, " |-|| |___| ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 18, " _|_| ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 19, " ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 20, " ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 21, " ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 22, "#Tasks : CPU Usage: % ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 23, "#Task switch/sec: ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( 0, 24, " <-PRESS 'ESC' TO QUIT-> ", DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);
/* 1111111111222222222233333333334444444444555555555566666666667777777777 */
/* 01234567890123456789012345678901234567890123456789012345678901234567890123456789 */
}
/*$PAGE*/
/*
*********************************************************************************************************
* UPDATE THE DISPLAY
*********************************************************************************************************
*/
static void TaskStartDisp (void)
{
char s[80];
sprintf(s, "%5d", OSTaskCtr); /* Display #tasks running */
PC_DispStr(18, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
#if OS_TASK_STAT_EN > 0
sprintf(s, "%3d", OSCPUUsage); /* Display CPU usage in % */
PC_DispStr(36, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
#endif
sprintf(s, "%5d", OSCtxSwCtr); /* Display #context switches per second */
PC_DispStr(18, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
sprintf(s, "V%1d.%02d", OSVersion() / 100, OSVersion() % 100); /* Display uC/OS-II's version number */
PC_DispStr(75, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
switch (_8087) { /* Display whether FPU present */
case 0:
PC_DispStr(71, 21, " NO FPU ", DISP_FGND_YELLOW + DISP_BGND_BLUE);
break;
case 1:
PC_DispStr(71, 21, " 8087 FPU", DISP_FGND_YELLOW + DISP_BGND_BLUE);
break;
case 2:
PC_DispStr(71, 21, "80287 FPU", DISP_FGND_YELLOW + DISP_BGND_BLUE);
break;
case 3:
PC_DispStr(71, 21, "80387 FPU", DISP_FGND_YELLOW + DISP_BGND_BLUE);
break;
}
}
/*$PAGE*/
/*
*********************************************************************************************************
* CREATE TASKS
*********************************************************************************************************
*/
static void TaskStartCreateTasks (void)
{
OSTaskCreateExt(Task1,
(void *)0,
&Task1Stk[TASK_STK_SIZE - 1],
TASK_1_PRIO,
TASK_1_ID,
&Task1Stk[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(Task2,
(void *)0,
&Task2Stk[TASK_STK_SIZE - 1],
TASK_2_PRIO,
TASK_2_ID,
&Task2Stk[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TaskClk,
(void *)0,
&TaskClkStk[TASK_STK_SIZE - 1],
TASK_CLK_PRIO,
TASK_CLK_ID,
&TaskClkStk[0],
TASK_STK_SIZE,
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
}
/*$PAGE*/
/*
*********************************************************************************************************
* TASK #1
*
* Description: This task executes every 100 mS and measures the time it task to perform stack checking
* for each of the 5 application tasks. Also, this task displays the statistics related to
* each task's stack usage.
*********************************************************************************************************
*/
void Task1 (void *pdata)
{
float a,b,d;
pdata=pdata;
for(;;)
{
if(flag == 1)
{
if(inpFlag == 1)
{ // If M,C,K value Has Changed
x1_k = 0.0; // Initialize x1(k)
x1_k1 = 0.0; // Initialize x1(k+1)
x2_k = 0.0; // Initialize x2(k)
x2_k1 = 0.0; // Initialize x2(k+1)
f_k = 0.0;
Ts = 0; // Initialize Time
inpFlag = 0;
}
Ts = Ts + T;
f_k = sin(150.0*PI*Ts/180);
x1_k1 = (T*x2_k + x1_k);
a = ( -K/M );
b = ( -C/M );
d = ( f_k/M );
x2_k1 = (a*x1_k + b*x2_k + d);
x1_k = x1_k1;
x2_k = x2_k1;
flag = 0;
}
OSTimeDly(1);
}
}
/*$PAGE*/
/*
*********************************************************************************************************
* TASK #2
*
* Description: This task displays a clockwise rotating wheel on the screen.
*********************************************************************************************************
*/
void Task2 (void *data)
{
char s[20], s1[20], s2[20], s3[20], s4[20];
//pdata=pdata;
for(;;)
{
sprintf(s, "X= %12.10f",x2_k1); /* Print The Position */
PC_DispStr( 52, 12, s, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
sprintf(s1, "M = %-10.1f",M); /* Print The M Value */
PC_DispStr( 52, 13, s1, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
sprintf(s2, "C = %-10.1f",C); /* Print The C Value */
PC_DispStr( 52, 14, s2, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
sprintf(s3, "K = %-10.1f",K); /* Print The K Value */
PC_DispStr( 52, 15, s3, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
sprintf(s4, "T = %-15.5f",Ts); /* Print The Real-Time */
PC_DispStr( 52, 16, s4, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispChar( (45 + x2_k1*50), 18, 219, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY); //display the simulate object
PC_DispChar( (45 + x2_k1*50), 19, 219, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
OSTimeDly(1);
PC_DispStr( (45 + x2_k1*50-8), 18," " , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
PC_DispStr( (45 + x2_k1*50-8), 19," " , DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);
}
}
/*$PAGE*/
/*
*********************************************************************************************************
* CLOCK TASK
*********************************************************************************************************
*/
void TaskClk (void *data)
{
char s[40];
data = data;
for (;;) {
PC_GetDateTime(s);
PC_DispStr(60, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
OSTimeDly(OS_TICKS_PER_SEC);
}
}
/*$PAGE*/
/*
*********************************************************************************************************
* CLOCK TASK
*********************************************************************************************************
*/
void tickISR()
{
counter++; //one tick is 1ms
if(counter == 5)
{ //If Time's Up (5ms) then flag = 1 To Run Real-Time Task -> task1
flag = 1;
counter = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -