|
发表于 2018-11-4 11:40:06
|
显示全部楼层
uCOS-II的emWin接口文件没有升级过,仅仅是升级了下标题头
下面是emWin5.46带的
- /*********************************************************************
- * SEGGER Microcontroller GmbH & Co. KG *
- * Solutions for real time microcontroller applications *
- **********************************************************************
- * *
- * (c) 1996 - 2017 SEGGER Microcontroller GmbH & Co. KG *
- * *
- * Internet: www.segger.com Support: support@segger.com *
- * *
- **********************************************************************
- ** emWin V5.46 - Graphical user interface for embedded applications **
- All Intellectual Property rights in the Software belongs to SEGGER.
- emWin 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 the following terms:
- The software has been licensed to ARM LIMITED whose registered office
- is situated at 110 Fulbourn Road, Cambridge CB1 9NJ, England solely
- for the purposes of creating libraries for ARM7, ARM9, Cortex-M
- series, and Cortex-R4 processor-based devices, sublicensed and
- distributed as part of the MDK-ARM Professional under the terms and
- conditions of the End User License supplied with the MDK-ARM
- Professional.
- Full source code is available at: www.segger.com
- We appreciate your understanding and fairness.
- ----------------------------------------------------------------------
- Licensing information
- Licensor: SEGGER Software GmbH
- Licensed to: ARM Ltd, 110 Fulbourn Road, CB1 9NJ Cambridge, UK
- Licensed SEGGER software: emWin
- License number: GUI-00181
- License model: LES-SLA-20007, Agreement, effective since October 1st 2011
- Licensed product: MDK-ARM Professional
- Licensed platform: ARM7/9, Cortex-M/R4
- Licensed number of seats: -
- ---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 <ucos_ii.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.
- *********************************************************************************************************
- */
- GUI_TIMER_TIME GUI_X_GetTime (void)
- {
- return ((GUI_TIMER_TIME)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);
- }
复制代码
|
|