Template for working forward

Dependencies:   mbed PinDetect

Revision:
1:402b32a1025f
--- /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 ****************************/