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

📄 gui_x.c

📁 移植UCGUI到S3C2440时,需要修改会编写的代码
💻 C
字号:
/***********************************************************************************************************                                             uC/GUI V4.12*                        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.*---Author-Explanation* * 1.00.00 020519 JJL    First release of uC/GUI to uC/OS-II interface* ** Known problems or limitations with current version**    None.*** Open issues**    None**********************************************************************************************************/#include "includes.h"#include "GUI_Private.H"#include "stdio.H"/***********************************************************************************************************                                         GLOBAL VARIABLES**********************************************************************************************************/static  OS_EVENT  *DispSem;static  OS_EVENT  *EventMbox;static  OS_EVENT  *KeySem;static  int        KeyPressed;static  char       KeyIsInited;/***********************************************************************************************************                                        TIMING FUNCTIONS** Notes: Some timing dependent routines of uC/GUI require a GetTime and delay funtion. *        Default time unit (tick), normally is 1 ms.**********************************************************************************************************/int  GUI_X_GetTime (void) {    return ((int)OSTimeGet());}void  GUI_X_Delay (int period) {    INT32U  ticks;    ticks = (period * 1000) / OS_TICKS_PER_SEC;    OSTimeDly((INT16U)ticks);}/***********************************************************************************************************                                          GUI_X_ExecIdle()**********************************************************************************************************/void GUI_X_ExecIdle (void) {    GUI_X_Delay(1);}/***********************************************************************************************************                                    MULTITASKING INTERFACE FUNCTIONS** Note(1): 1) The following routines are required only if uC/GUI is used in a true multi task environment, *             which means you have more than one thread using the uC/GUI API.  In this case the #define *             GUI_OS 1   needs to be in GUIConf.h**********************************************************************************************************/void  GUI_X_InitOS (void){     DispSem   = OSSemCreate(1);    EventMbox = OSMboxCreate((void *)0);}void  GUI_X_Lock (void){     INT8U  err;            OSSemPend(DispSem, 0, &err);}void  GUI_X_Unlock (void){     OSSemPost(DispSem);}U32  GUI_X_GetTaskId (void) {     return ((U32)(OSTCBCur->OSTCBPrio));}/***********************************************************************************************************                                        GUI_X_WaitEvent()*                                        GUI_X_SignalEvent()**********************************************************************************************************/void GUI_X_WaitEvent (void) {    INT8U  err;    (void)OSMboxPend(EventMbox, 0, &err);}void GUI_X_SignalEvent (void) {    (void)OSMboxPost(EventMbox, (void *)1);}/***********************************************************************************************************                                      KEYBOARD INTERFACE FUNCTIONS** Purpose: The keyboard routines are required only by some widgets.*          If widgets are not used, they may be eliminated.** Note(s): If uC/OS-II is used, characters typed into the log window will be placed	in the keyboard buffer. *          This is a neat feature which allows you to operate your target system without having to use or *          even to have a keyboard connected to it. (useful for demos !)**********************************************************************************************************/static  void  CheckInit (void) {    if (KeyIsInited == FALSE) {        KeyIsInited = TRUE;        GUI_X_Init();    }}void GUI_X_Init (void) {    KeySem = OSSemCreate(0);}int  GUI_X_GetKey (void) {    int r;    r          = KeyPressed;    CheckInit();    KeyPressed = 0;    return (r);}int  GUI_X_WaitKey (void) {    int    r;    INT8U  err;    CheckInit();    if (KeyPressed == 0) {        OSSemPend(KeySem, 0, &err);    }    r          = KeyPressed;    KeyPressed = 0;    return (r);}void  GUI_X_StoreKey (int k) {    KeyPressed = k;    OSSemPost(KeySem);}	 	 			 		    	 				 	  			   	 	 	 	 	 	  	  	      	   		 	 	   	 		  	 		 	  	   		   	  		       	   	 			  			   	 	 	 			 	    		  			 		 			  		  	 				    	 		 				 		 	 	 			 					 	  	 		 	    	 		 	  	 		 	  				 	 	 			 	    		  			 		 					 	 	 	   	   		 		 	 	  		 		   		   	 			  	  			 				 		  			 		 	  	 		 		   		 void GUI_X_Log     (const char *s) { GUI_USE_PARA(s); }void GUI_X_Warn    (const char *s) { GUI_USE_PARA(s); }void GUI_X_ErrorOut(const char *s) { GUI_USE_PARA(s); }

⌨️ 快捷键说明

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