Nathan Monk
/
CITY3032_Template
Template for working forward
Diff: emwin_config/GUI_X_Mbed.cpp
- Revision:
- 1:402b32a1025f
diff -r 6beb6f498640 -r 402b32a1025f emwin_config/GUI_X_Mbed.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emwin_config/GUI_X_Mbed.cpp Tue Nov 19 10:04:48 2019 +0000 @@ -0,0 +1,158 @@ +/********************************************************************* +* SEGGER Microcontroller GmbH * +* Solutions for real time microcontroller applications * +********************************************************************** +* * +* (c) 1996 - 2018 SEGGER Microcontroller GmbH * +* * +* Internet: www.segger.com Support: support@segger.com * +* * +********************************************************************** + +** emWin V5.48 - 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 Cypress Semiconductor Corporation, +whose registered office is situated at 198 Champion Ct. San Jose, CA +95134 USA solely for the purposes of creating libraries for Cypress +PSoC3 and PSoC5 processor-based devices, sublicensed and distributed +under the terms and conditions of the Cypress End User License +Agreement. +Full source code is available at: www.segger.com + +We appreciate your understanding and fairness. +---------------------------------------------------------------------- +Licensing information +Licensor: SEGGER Microcontroller Systems LLC +Licensed to: Cypress Semiconductor Corp, 198 Champion Ct., San Jose, CA 95134, USA +Licensed SEGGER software: emWin +License number: GUI-00319 +License model: Services and License Agreement, signed June 10th, 2009 +Licensed platform: Any Cypress platform (Initial targets are: PSoC3, PSoC5) +---------------------------------------------------------------------- +Support and Update Agreement (SUA) +SUA period: 2009-06-12 - 2022-07-27 +Contact to extend SUA: sales@segger.com +---------------------------------------------------------------------- +File : GUI_X_Mbed.c +Purpose : Config / System dependent externals for GUI +---------------------------END-OF-HEADER------------------------------ +*/ + +#include <stdio.h> +#include "mbed.h" + +extern "C" { + #include "GUI.h" +} + +/********************************************************************* +* +* Global data +*/ + +Ticker emwin_ticker; +Mutex emwin_mutex; +volatile GUI_TIMER_TIME timeMS = 0; + +/********************************************************************* +* +* Public code +* +********************************************************************** +*/ +/********************************************************************* +* +* Timing: +* GUI_X_GetTime() +* GUI_X_Delay(int) + + Some timing dependent routines require a GetTime + and delay function. Default time unit (tick), normally is + 1 ms. +*/ + +GUI_TIMER_TIME GUI_X_GetTime(void) +{ + return timeMS; +} + +void GUI_X_Delay(int ms) +{ + wait_ms(ms); +} + +/********************************************************************* +* +* GUI_X_ExecIdle() +* +*/ +void GUI_X_ExecIdle(void) +{ + wait_ms(1); +} + +/********************************************************************* +* +* Multitasking: +* +* GUI_X_InitOS() +* GUI_X_GetTaskId() +* GUI_X_Lock() +* GUI_X_Unlock() +* +* Note: +* The following routines are required only if emWin is used in a +* true multi task environment, which means you have more than one +* thread using the emWin API. +* In this case the +* #define GUI_OS 1 +* needs to be in GUIConf.h +*/ +void GUI_X_InitOS(void) {} +void GUI_X_Unlock(void) { emwin_mutex.unlock(); } +void GUI_X_Lock(void) { emwin_mutex.lock(); } +U32 GUI_X_GetTaskId(void) { return 0; } + +/********************************************************************* +* +* Logging: OS dependent + +Note: + Logging is used in higher debug levels only. The typical target + build does not use logging and does therefor not require any of + the logging routines below. For a release build without logging + the routines below may be eliminated to save some space. + (If the linker is not function aware and eliminates unreferenced + functions automatically) + +*/ + +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); } + +void ticker_handler(void) +{ + timeMS++; +} + +/********************************************************************* +* +* GUI_X_Init() +* +* Note: +* This routine is called from GUI_Init() in any case whether there +* is an RTOS or not. You can use it for additional initializations +* needed. +*/ + +void GUI_X_Init(void) +{ + emwin_ticker.attach(&ticker_handler, 0.001); +} + +/*************************** End of file ****************************/