回复【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;
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)
参数选的太大,建议楼主看一下GUI_Delay的底层定义,这只是一个延时函数。
你将GUI_Delay(10)改为1或2再试试.
我在论坛上发过一个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();。
一周热门 更多>