GUI_Delay()怎么用呢?能否替换?

2019-07-21 06:49发布

不用加UCOS就可以调用GUI_Delay啊,这两个是独立的,你是不是移植的时候没有专门开一个定时器来设置OS_Times,这个是延时的基础,只有这个数值变化了,才能实现延时
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
5498折戟沉沙
1楼-- · 2019-07-21 07:46
这个帮不到你了,ucGUI我不熟...
正点原子
2楼-- · 2019-07-21 07:58
我在论坛上发过一个GUI教程的链接,自己找一下吧
feiante
3楼-- · 2019-07-21 13:57
GUI_Delay(10); 
参数选的太大,建议楼主看一下GUI_Delay的底层定义,这只是一个延时函数。
你将GUI_Delay(10)改为1或2再试试.
5498折戟沉沙
4楼-- · 2019-07-21 15:10
我也遇到这个问题了,不知道楼主解决没?
stm0574
5楼-- · 2019-07-21 16:46
 精彩回答 2  元偷偷看……
阳光天蓝色
6楼-- · 2019-07-21 22:32
回复【5楼】5498折戟沉沙:
我在论坛上发过一个GUI教程的链接,自己找一下吧
---------------------------------
回复【2楼】5498折戟沉沙:
不用加UCOS就可以调用GUI_Delay啊,这两个是独立的,你是不是移植的时候没有专门开一个定时器来设置OS_Times,这个是延时的基础,只有这个数值变化了,才能实现延时
---------------------------------
/*
*********************************************************************************************************
*                                                uC/GUI
*                        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.
*
----------------------------------------------------------------------
File     : GUI_X.C
Purpose  : Config / System dependent externals for GUI
---------------------------END-OF-HEADER------------------------------
*/

#include "GUI.h"
#include "GUI_X.h"

/*********************************************************************
*
*       Global data
*/
volatile int OS_TimeMS;

/*********************************************************************
*
*      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.
*/

int GUI_X_GetTime(void) { 
  return OS_TimeMS; 
}

void GUI_X_Delay(int ms) { 
  int tEnd = OS_TimeMS + ms;
  while ((tEnd - OS_TimeMS) > 0);
}

/*********************************************************************
*
*       GUI_X_Init()
*
* Note:
*     GUI_X_Init() is called from GUI_Init is a possibility to init
*     some hardware which needs to be up and running before the GUI.
*     If not required, leave this routine blank.
*/

void GUI_X_Init(void) {}


/*********************************************************************
*
*       GUI_X_ExecIdle
*
* Note:
*  Called if WM is in idle state
*/

void GUI_X_ExecIdle(void) {}

/*********************************************************************
*
*      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); }


请问是这个没设置好:volatile int OS_TimeMS;导致GUI_Delay();不能用吗?具体要怎么设置?我设置了volatile int OS_TimeMS;但是还是用不了延时GUI_Delay();。

一周热门 更多>