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

📄 gui_x_embos.c

📁 uCGUI
💻 C
字号:
/*************************************************************************************************************
                                                   uC/GUI
                                               嵌入式通用图形软件
File        : GUI_X.C
Purpose     : Config / System dependent externals for GUI
*************************************************************************************************************/
#include <stdio.h>
#include "RTOS.H"               /* embOS include */
#include "GUI.H"
#include "GUI_X.H"

/*************************************************************************************************************
*      Timing:
*                 GUI_GetTime()
*                 GUI_Delay(int)
  Some timing dependent routines of emWin require a GetTime and delay funtion. Default time unit (tick), 
  normally is 1 ms.
*************************************************************************************************************/
int GUI_X_GetTime(void) 
{
  return OS_GetTime();
}

void GUI_X_Delay(int Period) 
{
  OS_Delay(Period);
}

/*************************************************************************************************************
*       GUI_X_ExecIdle()
*************************************************************************************************************/
void GUI_X_ExecIdle(void) 
{
  OS_Delay(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
*************************************************************************************************************/
static OS_RSEMA RSema;

void GUI_X_InitOS(void)    
{ OS_CreateRSema(&RSema);    }

void GUI_X_Unlock(void)    
{ OS_Unuse(&RSema); }

void GUI_X_Lock(void)      
{ OS_Use(&RSema);  }

U32  GUI_X_GetTaskId(void) 
{ return (U32)OS_GetTaskID(); }

/*************************************************************************************************************
*      Keyboard input from serial input

Note:
  If embOS 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. (nice for demos !)
*************************************************************************************************************/
void GUI_X_OnRx(OS_U8 Data) 
{
  GUI_StoreKeyMsg(Data, 1);
}

void GUI_X_Init(void) 
{
  OS_SetRxCallback(GUI_X_OnRx);
}

/*************************************************************************************************************
*      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) 
{ OS_SendString(s); }

void GUI_X_Warn    (const char *s) 
{ OS_SendString(s); }

void GUI_X_ErrorOut(const char *s) 
{ OS_SendString(s); }







⌨️ 快捷键说明

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