📄 mprogbar.c
字号:
/*
*********************************************************************************************************
* uC/GUI
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* 礐/GUI is protected by international copyright laws. Knowledge of the
* source code may not be used to write a similar product. This file may
* only be used in accordance with a license and should not be redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : WIDGET_Progbar.c
Purpose : Simple demo shows the use of the PROGBAR widget
----------------------------------------------------------------------
*/
#ifndef DEMOCHOICE
#include "headers.h"
#include "GUI.H"
#include "PC.H"
#include "progbar.h"
#include "graphics.h"
void DrawInit (void)
{
int driver=DETECT,graphmode;
registerfarbgidriver (EGAVGA_driver_far);
initgraph (&driver,&graphmode,"");
}
#endif
/*******************************************************************
*
* Shows the use of progress bars
*
********************************************************************
*/
void DemoProgBar(void *pData)
{
int i;
PROGBAR_Handle ahProgBar[2];
pData=pData;
GUI_Init ();
GUI_Clear();
GUI_SetColor(GUI_WHITE);
GUI_SetFont(&GUI_Font16B_1);
GUI_DispStringAt("进度条", 100,80);
/* Create `em */
ahProgBar[0] = PROGBAR_Create(100,100,100,20, WM_CF_SHOW);
ahProgBar[1] = PROGBAR_Create( 80,150,140,16, WM_CF_SHOW);
/* Use memory device (optional, for better looks) */
//PROGBAR_EnableMemdev(ahProgBar[0]);
//PROGBAR_EnableMemdev(ahProgBar[1]);
GUI_Delay (100);
PROGBAR_SetMinMax(ahProgBar[1], 0, 500);
while(1) {
PROGBAR_SetFont(ahProgBar[0], &GUI_Font16B_1);
if (LCD_GetDevCap(LCD_DEVCAP_BITSPERPIXEL) <= 4) {
PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_DARKGRAY);
PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_LIGHTGRAY);
}
else {
PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_GREEN);
PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_RED);
}
for (i=0; i<=100; i++) {
PROGBAR_SetValue(ahProgBar[0], i);
PROGBAR_SetValue(ahProgBar[1], i);
GUI_Delay(5);
}
PROGBAR_SetText(ahProgBar[0], "Tank empty");
for (; i>=0; i--) {
PROGBAR_SetValue(ahProgBar[0], i);
PROGBAR_SetValue(ahProgBar[1], 200-i);
GUI_Delay(5);
}
PROGBAR_SetText(ahProgBar[0], "任何字体 ...");
PROGBAR_SetTextAlign(ahProgBar[0], GUI_TA_LEFT);
for (; i<=100; i++) {
PROGBAR_SetValue(ahProgBar[0], i);
PROGBAR_SetValue(ahProgBar[1], 200+i);
GUI_Delay(5);
}
PROGBAR_SetTextAlign(ahProgBar[0], GUI_TA_RIGHT);
for (; i>=0; i--) {
PROGBAR_SetValue(ahProgBar[0], i);
PROGBAR_SetValue(ahProgBar[1], 400-i);
GUI_Delay(5);
}
PROGBAR_SetFont(ahProgBar[0], &GUI_Font16B_1);
PROGBAR_SetText(ahProgBar[0], "任意文字 ...");
for (; i<=100; i++) {
PROGBAR_SetValue(ahProgBar[0], i);
PROGBAR_SetValue(ahProgBar[1], 400+i);
GUI_Delay(5);
}
GUI_Delay(100);
}
}
/*******************************************************************
*
* main
*
********************************************************************
*/
#ifndef DEMOCHOICE
void main(void) {
DrawInit ();
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 */
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();
OSTaskCreateExt(DemoProgBar,(void *)0,&TestTask1Stk[TASK_ONE_STACKSIZE-1],1,1,&TestTask1Stk[0],TASK_ONE_STACKSIZE,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSTaskCreateExt(TestTask2,(void *)0,&TestTask2Stk[TASK_TWO_STACKSIZE-1],2,2,&TestTask2Stk[0],TASK_TWO_STACKSIZE,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
//OSTaskCreateExt(TestTask3,(void *)0,&TestTask3Stk[TASK_THR_STACKSIZE-1],3,3,&TestTask3Stk[0],TASK_THR_STACKSIZE,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
OSStart();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -