UC GUI中文指导手册.pdf

上传人:来看看 文档编号:3680315 上传时间:2019-09-20 格式:PDF 页数:431 大小:2.97MB
返回 下载 相关 举报
UC GUI中文指导手册.pdf_第1页
第1页 / 共431页
UC GUI中文指导手册.pdf_第2页
第2页 / 共431页
UC GUI中文指导手册.pdf_第3页
第3页 / 共431页
UC GUI中文指导手册.pdf_第4页
第4页 / 共431页
UC GUI中文指导手册.pdf_第5页
第5页 / 共431页
亲,该文档总共431页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《UC GUI中文指导手册.pdf》由会员分享,可在线阅读,更多相关《UC GUI中文指导手册.pdf(431页珍藏版)》请在三一文库上搜索。

1、第第1章章 C/GUI的介绍的介绍 C/GUI C/GUI 是一种用于嵌入式应用的图形支持软件。它被设计用于为任何使用一个图形 LCD 的应用提供一个有效的不依赖于处理器和 LCD 控制器的图形用户接口。它能工作于单任务或 多任务的系统环境下。 C/GUI 适用于使用任何 LCD 控制和 CPU 的任何尺寸的物理和虚拟显示。 它的设计是模块化的,由在不同的模块中的不同的层组成。一个层,称作 LCD 驱动程序,包 含了对 LCD 的全部访问。C/GUI 适用于所有的 CPU,因为它 100%由的 ANSI 的 C 语言编写的。 C/GUI 很适合大多数的使用黑色/白色和彩色 LCD 的应用程序。

2、 它有一个很好的颜色管理 器,允许它处理灰阶。C/GUI 也提供一个可扩展的 2D 图形库和一个视窗管理器,在使用一个 最小的 RAM 时能支持显示窗口。 本文档的目的本文档的目的 本指南描述如何安装,配置和在嵌入式应用中使用C/GUI 图形用户界面。它也说明了软 件的内部结构。 假设假设 本指南假定你对 C 编程语言已经具有一个扎实的认识。 如果你觉得你对 C 语言的认识不是很充分的话,我们推荐该由 Kernighan 和 Richie 编写 的“C 语言编程语言”给你,它描述了程序设计标准,而在新版中,也包含了 ANSI 的 C 语言 标准。汇编语言编程的知识不需要。 第 1 页 C/GU

3、I 中文手册 第 1 章 C/GUI 的介绍 1.1 需求需求 在你使用C/GUI 进行软件开发时,并不需要一个目标系统;只需要使用模拟器,大多数 软件就能够进行开发。然而,最后的目的通常是能够在一个目标系统上运行该软件。 目标系统(硬件)目标系统(硬件) 你的目标系统必须: 有一个 CPU(8/16/32/64 位) 有最少的 RAM 和 ROM 有一个完全的图形 LCD(任何类型和任何分辩率) 内存需求的变化取决于软件的哪些部分被使用以及你的目标编译程序的效率有多高。所 以指定精确值是不可能的,但是下面的数值适合典型系统。 小的系统(没有视窗管理器)小的系统(没有视窗管理器) RAM:10

4、0 字节 堆栈:500 字节 ROM:1025KB(取决于使用的功能) 大的系统(包括视窗管理器和控件)大的系统(包括视窗管理器和控件) RAM:26KB(取决于所需窗口的数量) 堆栈:1200 字节 ROM:3060KB(取决于使用的功能) 注意,如果你的应用程序使用许多字体的话,ROM 的需求将增加。以上所有的数值都是粗 略的估计,不能得到保证。 开发环境(编译程序)开发环境(编译程序) 使用什么样的 CPU 并不重要;仅仅需要一个与 ANSI 兼容的 C 编译器。如果你的编辑器有 一些限制,请告知我们,我们将通知你在编译软件时是否会带来问题。我们所知道的任何用 于 16/32/64 位

5、CPU 或者 DSP 的编译器都可以使用;大多数的 8 位编译器也可以使用。 一个 C+编译器并不需要,不过可以使用。因此,如果想要的话,应用程序也可以用 C+ 第2页 C/GUI 中文手册 第 1 章 C/GUI 的介绍 语言来编制。 1.2 C/GUI 的特点的特点 C/GUI 被设计用于给使用一个图形 LCD 的任何应用程序提供一个高效率的,与处理器和 LCD 控制器无关的图形用户界面。它适合于单一任务和多任务环境,专用的操作系统或者任何 商业的实时操作系统(RTOS) 。C/GUI 以 C 源代码形式提供。它可以适用于任何尺寸的物理和 虚拟显示,任何 LCD 控制器和 CPU。其特点包

6、括下列这些: 一般特点一般特点 任何 8/16/32 位 CPU;只需要一个与 ANSI 兼容的 C 编译器。 任何控制器支持(如果有合适的驱动程序)的任何(单色的,灰度级或者彩色)LCD。 在较小显示屏上,可以不要 LCD 控制器工作。 使用配置宏可以支持任何接口。 显示屏大小可配置。 字符和位图可能是写在 LCD 上的任一点,而不仅仅局限于偶数的字节的地址。 程序对大小和速度都进行了最优化。 允许编译时的切换以获得不同的优化。 对于较慢的 LCD 控制器,LCD 能够被存储到内存当中,减少访问的次数使其最小,从 而得到非常高的速度。 清晰的结构。 支持虚拟显示;虚拟显示能够比实际的显示表现

7、更大尺寸的内容。 图库图库 支持不同颜色深度的位图。 有效的位图转换器。 绝对没有使用浮点运算。 快速线/点绘制(没有使用浮点运算) 。 非常快的圆/多边形的绘制。 不同的绘画模式。 字体字体 为基本软件提供了不同种类的字体:4*6,6*8,6*9,8*8,8*9,8*16,8*17,8*18, 24*32,以及 8,10,13,16 等几种高度(以象素为单位)的均衡字体。更多的信息, 参见第 25 章:“标准字体”。 第 3 页 C/GUI 中文手册 第 1 章 C/GUI 的介绍 可以定义和简便地链接新的字体。 只有用于应用程序的字体才实际上与执行结果链接,这样保证了最低的 ROM 占用。

8、 字体可以分别在 X 轴和 Y 轴方向上充分地缩放。 提供有效的字体转换器,任何在你的主系统(即 Microsoft Windows)上的有效字体 都可以转换。 字符串字符串/数值输出程序数值输出程序 程序支持任何字体的十进制,二进制,十六进制的数值显示。 程序支持任何字体的十进制,二进制,十六进制的数值编辑。 视窗管理器(视窗管理器(WM) 完全的窗口管理器包括剪切在内。一个窗口的外部区域的改写是不可能的。 窗口能够移动和缩放。 支持回调函数(可选择用法) 。 WM 使用极小的 RAM(大约每个窗口 20 字节) 。 可选择用于可选择用于PC外观的控件外观的控件 控件(窗口对象)有效。它们一

9、般自动运行,并且易于使用。 触摸屏和鼠标支持触摸屏和鼠标支持 对于比如按钮控件之类的窗口对象,C/GUI 提供触摸屏和鼠标支持。 PC工具工具 模拟器及观察器。 位图转换器。 字体转换器。 范例和演示范例和演示 关于C/GUI 能做什么,为了给你一个更好的概念,我们准备有不同的演示作为可运行的 仿真程序, 在目录sampleEXE 下。 范例程序的源代码位于Sample 目录。 文件夹 SampleGUIDemo 包括一个展示大部分C/GUI 特点的应用程序。 第4页 C/GUI 中文手册 第 1 章 C/GUI 的介绍 1.3 估价板估价板 一个完全的评估板包括一个带有 LCD 的演示板,一

10、个 C 语言编译器和一个有效的范例工 程。它已经设计好,主要测试和验证C/GUI,并且它可用于熟悉这个软件。 评估板评估板 评估板包括 Mitsubishi M30803 CPU 和 SED13705 LCD 控制器(包括原理图和技术资料) 。 LCD(320240 像素)或者单色的 LCD,1/4VGA 彩色显示 LCD 或者 TFT。 更详细的资料,请访问我们的网站:。 1.4 如何使用本手册如何使用本手册 该手册说明了如何安装,配置和使用C/GUI。它描述了软件的内部结构和C/GUI 提供的 所有的功能(应用程序接口,或者 API) 。 在实际上使用C/GUI 之前,你应该阅读或者至少浏

11、览本手册,对该软件做到耳濡目染。 推荐下列步骤: 拷贝C/GUI 文件到你的电脑。 仔细研究第 2 章:“入门指南”。 使用模拟器多熟悉一理这个软件能作什么(参考第 3 章:“仿真器”) 。 使用本手册其余部分的参考资料扩展你的程序。 第 5 页 C/GUI 中文手册 第 1 章 C/GUI 的介绍 排版上的语法约定排版上的语法约定 本手册使用下列印刷惯例: 类型 类型 用于 用于 Body 正文文字。 Keyword 那些你在命令-提示中输入的文字,或者那些能在显示 屏上看得见的文字(即系统函数,文件或者路径名) 。 Parameter API 函数中的参数。 Sample 在程序范例中的范

12、例代码。 New Sample 那些已经被加到一个已存在有程序范例中的范例代码。 1.5 屏幕和坐标屏幕和坐标 屏幕由能够被单独控制的许多点组成。这些被称作像素。大部分C/GUI 在它的 API 中向 用户程序提供的文本和绘图函数能够在任何指定像素上写或绘制。 水平刻度被称作 X 轴,而垂直刻度被称作 Y 轴。一个二维坐标用 X 轴和 Y 轴坐标表示, 即值(X,Y)。在程序中需要用到 X 和 Y 坐标时,X 坐标总在前面。显示屏(或者一个窗口)的 左上角为一默认的坐标(0,0) 。正的 X 值方向被总是向右;正的 Y 值方向总是向下。上图说 明该坐标系和 X 轴和 Y 轴的方向。所有传递到一

13、个 API 函数的坐标总是以像素为单位所指定。 1.6 如何连接如何连接LCD到微控制器到微控制器 C/GUI 处理所有的 LCD 访问。事实上任何 LCD 控制器都能够被支持,不取决于它是如何 访问的。至于细节,请参阅第 20 章:“低层配置”。此外,如果你的 LCD 控制器不被支持的 话,请与我们保持联系。我们目前为全部有销售 LCD 控制器编写驱动程序,对于你打算使用 第6页 C/GUI 中文手册 第 1 章 C/GUI 的介绍 的 LCD 控制器已经有一个经过验证的驱动程序提供。 在你的应用程序中写这样的用于访问 LCD 的程序(或者宏)通常非常简单。如果你的目标硬件有需要的话,Mic

14、rium 公司可以提供定制 的服务。 LCD 如何与系统连接并不真的重要,只要它通过软件以某种方式达到,可能是按多种方式 完成的。大多数这些接口通过一个提供源代码方式的驱动程序来支持。这些驱动程序通常不 需要修改,但是用于你的硬件,要通过修改文件 LCDConf.h 进行配置。有关根据需要如何定 制一个驱动程序到你的硬件在第 22 章:“LCD 驱动程序”中说明。最通用的访问 LCD 的方式 如下所描述。如果你只是想领会如何使用C/GUI,你可以跳过本节。 带有存储映像带有存储映像LCD控制器的控制器的LCD LCD 控制器直接连接到系统的数据总线,意思是能够如同访问一个 RAM 一样访问控制

15、器。 这是一个很有效的访问 LCD 控制器方法,最值得推荐。LCD 地址被定义为段 LCDSEG,为了能 访问该 LCD,连接程序/定位器只需要告知这些段位于什么地方。该位置必须与物理地址空间 中访问地址相吻合。驱动程序对于这类接口是有效的,并且能用于不同的 LCD 控制器。 带有带有LCD控制器的控制器的LCD连接到端口连接到端口/缓冲区缓冲区 对于在快速处理器上使用的较慢的 LCD 控制器,端口-连线的使用可能是唯一的方案。这 个访问 LCD 的方法有稍微比直接总线接口慢一些的缺点,但是,特别是使用一个减少 LCD 访 问次数的高速缓存的情况,LCD 刷新并不会有大的延迟。所有那些需要处理

16、的是定义程序或者 宏,设置或者读取与 LCD 连接的硬件端口/缓冲区。这类接口也被用于不同的 LCD 控制器的不 同的驱动程序所支持。 特殊方案:没有特殊方案:没有LCD控制器的控制器的LCD LCD 可以不需要 LCD 控制器而进行连接。在这种情况下,LCD 数据通常通过控制器经由一 个 4 或 8 位移位寄存器直接提供。这些特殊的硬件方案有价格便宜的优点,但是使用上的缺 点是占用了大部分有效的计算时间。根据不同的 CPU,这会占到 CPU 的开销的 20%到几乎 100% 之间;对于较慢的 CPU,它根本是极不合理的。这类接口不需要一个特殊的 LCD 驱动器,因为 C/GUI 简单地将所有

17、显示数据放入 LCD 高速缓存中。你自己必须写硬件相关部分软件,周期 性地将数据从高速缓存的内存传递到你的 LCD。 对于 M16C 和 M16C/80, 传递图像到显示屏中的范例代码可以用“C”和优化的汇编程序实 现。 第 7 页 C/GUI 中文手册 第 1 章 C/GUI 的介绍 1.7 数据类型数据类型 因为 C 语言并不提供与所有平台相吻合的固定长度的数据类型,大多数情况下,C/GUI 使用它自己的数据类型,如下表所示: 数据类型 数据类型 定义 定义 说明 说明 I8 signed char 8 位有符号值 U8 unsigned char 16 位无符号值 I16 signed

18、short 16 位有符号值 U16 unsigned short 16 位无符号值 I32 signed long 32 位有符号值 U32 unsigned long 32 位无符号值 I16P signed short 16 位(或更多)有符号值 U16P unsigned short 16 位(或更多)无符号值 对于大多数 16/32 位控制器来说,该设置将工作正常。然而,如果你在你的程序的其它 部分中有相似的定义,你可能想对它们进行修改或者重新配置。一个推荐的位置是置于配置 文件 LCDConf.h 中。 第8页 C/GUI 中文手册 第第2章章 入门指南入门指南 这一章提供一个在你

19、的目标系统上设置和配置C/GUI的基本处理过程的概述。同时也包 括了一个简单的范例程序。 请注意,大多数主题在后面的章节会有更详细的描述。在你开始更复杂的编程之前,你 很有必要参阅本手册的其它部分。 第 1 页 C/GUI 中文手册 第 2 章 入门指南 2.1推荐的结构推荐的结构 使C/GUI 和你的应用文件分离,这是我们推荐的。在工程文件的“root”目录的 GUI 子 目录下保留所有的程序文件(包括头文件) ,这是一个好的习惯。目录结构应该和下图相似。 这种习惯有一个好处,就是很容易升级更新版本的C/GUI,只需要替换 GUI 目录就可以。 子目录子目录 下表显示了 GUI 所有子目录的

20、内容 目 录 内 容 Config 配置文件 GUI/AntiAlias 抗锯齿支持 * GUI/ConvertMono 用于 B/W(黑白两色)及灰度显示的色彩转换程序 GUI/ConvertColor 用于彩色显示的色彩转换的程序 GUI/Core C/GUI 内核文件 GUI/Font 字体文件 GUI/LCDDriver LCD 驱动 GUI/Mendev 存储器件支持 * GUI/Touch 触摸屏支持 * GUI/Widget 视窗控件库 * GUI/WM 视窗管理器 * (带“*”标志的为可选项) 第2页 C/GUI 中文手册 第 2 章 入门指南 “Include”目录”目录

21、确认你的 Include 路径包括有以下目录(包括的先后顺序并不重要) : Config GUI/Core GUI/Widget(如果使用视窗控件库) GUI/WM(如果使用视窗管理器) 警告:你必须确认你在每个文件中只使用了一个版本的C/GUI 2.2 向目标程序加入向目标程序加入C/GUI 你主要是在这两者之间做一个选择,一是将你要在你的工程中使用的源文件包括进来, 然后进行编译和连接;或者建立一个库并连接这个库文件。如果你的链接工具支持“智能化” 连接(仅仅连接那些使用到的模块而不是那些没有使用到的模块) ,那么就完全没有必要建立 建立一个库,因为只是要求将函数和数据结构进行连接。如果你

22、的工具链接不支持“智能化” 连接,建立一个库就很有意义了,否则如果将每样东西都要进行连接的话,程序会变得非常 大。对于一些 CPU 来说,我们能提供有效的范例工程帮助你开始使用。 2.3 建立一个库建立一个库 从 源 程 序 建 立 一 个 库 是 一 个 简 单 的 流 程 。 第 一 步 是 拷 贝 批 处 理 文 件 ( 位 于 “SampleMakelib”目录下面)到根目录下。然后,做一些必要的修改。总共有四个批处理 文件需要拷贝,如下表描述的那样。主文件“Makelib.bat”在所有的系统中都是一样的,所 以无需修改。在你的目标系统上建立一个库,正常情况下你需要对其它三个比较小的

23、文件做 一些微小的改动。最后执行“Makelib.bat”文件建立库。批处理文件假定你的 GUI 和配置子 目录已经如前面所推荐的那样建立起来了。 文 件 文 件 说 明 说 明 Makelib.bat 主批处理文件,不需要修改 Prep.bat 由 Makelib.bat 调用,建立用于链接工具的工作环境 CC.bat 由 Makelib.bat 调用,对库所用到的文件进行处理,为这些 目标文件建立一个列表,该列表在下一步中由 lib.bat 中的 lib.bat 由 Makelib.bat 调用,将列表中的目标文件置入一个库当中 建立库的流程如下图所示。Makelib.bat 文件首先调用

24、 Prep.bat 准备用于链接工具的环 境。然后调用 CC.bat 处理库当中所包括的每一个文件,做完这些工作需要一些时间。CC.bat 第 3 页 C/GUI 中文手册 第 2 章 入门指南 将这些目录文件加入一个列表,这个列表是 lib.bat 要使用的。当所有加入到库当中的文件 已经写入列表后,Makelib.bat6 调用 lib.bat,使用一个库管理工具将列表中的目标文件置 入一个活动的库当中。 Makelib.bat Prep.bat CC.bat 所有文件已加入库中? Lib.bat 否 是 我们假设一个微软编译器已经安装到它的默认位置。如果所有的批处理文件都拷贝到根 目录(

25、GUI 的上一级目录) ,并且不作任何修改,将会产生一个用于C/GUI 仿真的仿真库。无 论如何,要建立一个目标库的话,必须要对 Prep.bat、CC.bat 和 lib.bat 三个文件进行修改。 2.4 将将C/GUI的“的“C”文件加入工程中”文件加入工程中 通常说法,你需要加入C/GUI 的核心“C”文件,LCD 驱动,你显示屏所使用的字体文件 及其它你定制可选择的模块: 目录 GUICore、GUIConvertColor 及 GUIConvertMono 下的所有“C”文件 你的显示屏用到的字体(位于目录 GUIFont 下) 附加的软件包 如果你的显示屏使用附加的可选的模块,你

26、必须也要包括相关的“C”文件 第4页 C/GUI 中文手册 第 2 章 入门指南 2.5 配置配置C/GUI 配置目录应该包含与你的要求相匹配的配置文件。文件 LCDConf.h 通常包含所有的需要 的定义,使你能够为你的 LCD 使用C/GUI,这是开始配置C/GUI 的主要任务。了解更多的细 节,请参阅第 20 章“底层配置” 。 如果因为你没有选择正确的显示方案或选择了错误的 LCD 控制器而导致C/GUI 没有正确 配置,LCD 可能不会显示任何东西,或者显示些不是你所期望的内容。因此,要注意修改你所 需要的 LCDConf.h。 配置宏的类型配置宏的类型 下面是一些配置宏的类型: 二

27、进制开关“B” 二进制开关“B” 这个开关的数值是“0”或“1” , “0”表示不激活,而“1”表示激活(除了“0”以外的 数值都可以激活,但是使用“1” 使配置文件更易于阅读) 。这些开关能够启用或禁止某一个 功能或行为。开关是配置宏中最简单的格式。 数值“N” 数值“N” 数值有代码中某些地方使用,以替代数值常量。在 LCD 配置方案中有一个典型的例子。 选择开关“S” 选择开关“S” 选择开关用于从多个选项中选择一项(只能选中一项) 。典型的例子是用于所使用的 LCD 控制器的选择,选择的数值指示调用相应源代码(相应的 LCD 驱动)产生目标代码。 别名“A” 别名“A” 一个类似于简单

28、的文本替代这样操作的宏。一个典型例子是定义 U8,预处理程序会用 “unsigned char”代替“U8” 。 函数替换“F” 函数替换“F” 该宏基本被视为一个正常的函数,尽管有某些应用上的限制,宏依旧被放入代码当中, 就象文本代换的例子一样。函数替换主要用于给一个高度依赖硬件的模块增加一些特殊的函 第 5 页 C/GUI 中文手册 第 2 章 入门指南 数(例如 LCD 的访问) ,这类宏通常使用括弧(与可选择参数一起)来声明。 2.6 初始化初始化C/GUI 程序 GUI_Init()初始化 LCD 和C/GUI 的内部数据结构, 在其它C/GUI 函数运行之前必须 被调用。这通过将下

29、面一行放入你的程序序列的开始来做到: GUI_Init(); 如果忽略了这个调用,整个图形系统将不会得到初始化,从而无法准备下一步的动作。 2.7 在目标硬件上使用在目标硬件上使用C/GUI 下面所陈述是只是我们使用C/GUI 进行编程的一些基本的步骤要点。这些步骤更详细的 解释在以后的章节介绍。 第一步:定制第一步:定制C/GUI C/GUI 通常第一步是通过修改头文件 LcdConf.h 来定制C/GUI。你必须定义一些基本数据类型 (U8,U16 等) ,及有关显示方案和所使用的 LCD 控制器的开关配置。 第二步:定义访问地址和访问规则 第二步:定义访问地址和访问规则 对于使用存储器映

30、象的 LCD,仅仅需要在 LcdConf.h 中定义访问地址。 对于端口/缓冲的 LCD,必须定义接口程序,在 SamplesLcd_x 目录下,或是在我们 Web 站点的下载区的中,有一些所需的接口程序的范例代码可供参考。 第三步:编译、连接和测试范例程序 第三步:编译、连接和测试范例程序 C/GUI 带有一些单任务和多任务环境下的范例程序,编译、连接和测试这些范例程序, 直到你感觉已经熟悉它们了。 第四步:修改范例程序 第四步:修改范例程序 对范例程序进行简单的修改,增加些额外的命令,诸如在显示时显示不同尺寸的文字, 显示一条线等等。 第6页 C/GUI 中文手册 第 2 章 入门指南 第

31、五步:多任务应用:适应你的操作系统(如果需要的话) 第五步:多任务应用:适应你的操作系统(如果需要的话) 如果多任务允许同时访问显示器,则宏 GUI_MAXTASK 和 GUI_OS 与文件 GUITask.cg 一道 开始运行。更详细的内容及范例程序的修改请参考第 21 章:高层次配置。 第六步:使用第六步:使用C/GUI 编写你的应用程序 C/GUI 编写你的应用程序 到现在,你应该对如何使用C/GUI 应该有一个清楚的了解。考虑如何去构建你的应用要 求的程序,通过调用适当的程序来使用C/GUI。参考本手册后面相关的章节,这些章节讨论 特殊的C/GUI 函数和配置有效的宏。 2.8 “He

32、llo World”范例程序”范例程序 在早些时候,一个“Hello World”程序被做为 C 语言编程的入门程序,因为它本质上是 一个能写出的最简单的程序。C/GUI 的“Hello World”程序的名称是 Hello.c,如下所示。 在C/GUI 所带的范例中的它的名称为 Basic_HelloWorld.c。 该程序的目的是在显示器的左上角写“Hello World” ,为了能实现这个功能,应用硬件, LCD 和 GUI 必须首先要初始化。C/GUI 的初始化通过在程序开始调用 GUI_Init()来实现,就 象先前所描述的那样。在本程序中,我们假设应用硬件的初始化已经完成。 /*-

33、 文件: BASIC_HelloWorld.c 目的: 绘制“Hello world”的简单范例 -*/ #include “GUI.H“ /* * 主函数 * */ void main(void) /* 要做的事:确认硬件首先初始化了! */ GUI_Init(); GUI_DispString(“Hello world!“); while(1); 第 7 页 C/GUI 中文手册 第 2 章 入门指南 给“给“Hello Word”程序增加功能”程序增加功能 我们的小程序能做的工作实在太少,现在我们对它扩展一点功能:在显示“Hello World” 后,我们希望程序开始计数以估计能够获得多

34、快的输出速度(至LCD)。我们在主程序末尾的 仅仅增加一点点代码进行循环,本质上是调用一个显示十进制形态数值的函数。 /*- 文件: BASIC_HelloWorld1.c 目的: 绘制“Hello world”的简单范例 -*/ #include “GUI.H“ /* * 主函数 * */ void main(void) void main(void) int i=0; /* 要做的事:确认硬件首先初始化了! */ GUI_Init(); GUI_DispString(“Hello world!“); while(1) GUI_DispDecAt( i+, 20,20,4); if(i999

35、9) i=0; 第8页 C/GUI 中文手册 第第3章章 仿真器仿真器 C/GUI的PC仿真器允许你在Windows下编译相同的“C”源程序。PC使用一个本地编译器 (一般是微软所提供的)并建立一个用于你自己应用的可执行文件。这样做可能完成: 在你的PC上进行用户接口设计(不需要硬件支持) 调试你的用户接口程序 建立你的应用的演示,可以用于描述用户接口 最终的可执行文件能够很容易通过E-Mail传送。 第 1 页 C/GUI 中文手册 第 3 章 仿真器 3.1 理解仿真器理解仿真器 C/GUI仿真器使用微软Visual C+(6.0或更高版本)及其所带的集成开发环境(IDE)。 你能够在PC

36、屏幕上看到你的LCD仿真效果,一旦正确配置你的LCD后仿真效果能提供与你的LCD 在X轴和Y轴上相同的分辨率及同样精确的颜色。 仿真的整个图形库API和视窗管理API与你的目标系统是一样的;所有函数运行与在目标 硬件上运行高度一致,因为仿真时使用了与目标系统同样的“C”源代码。唯一不同是在软件 的底层:LCD驱动。PC仿真使用一个仿真的驱动写入一个位图,以代替实际的LCD驱动。在你 的屏幕上显示的位图使用第二个仿真线程。第二个线程在实际应用并不存在,它只是在LCD程 序被直接写屏时运行。 3.2 在评估版在评估版C/GUI中使用仿真器中使用仿真器 版本版本 C/GUI 评估版包括一个完全的库,

37、允许你评估C/GUI的所有效特性。同时也包括C/GUI 观察器(用于调试应用程序)及字体转换器和位图转换器的演示版。 请记住这些,做为一个评估版本,你不能改变任何配置或者察看源代码,但是你仍然能 够熟悉C/GUI的使用。 目录结构目录结构 评估版仿真器的目录结构如下图所示。 第 2 页 C/GUI 中文手册 第 3 章 仿真器 目录“Application”包括演示程序的源代码。 目录“Exe”包括一个“ready-to-use”演示程序。 目录“GUI”包括库文件和库使用的包含文件。 目录“Sample”包括仿真范例及其源代码。 目录“Simulation”包括仿真所需的文件。 目录“Too

38、l”包括C/GUI观察器,一个演示版的位图转换器和一个演示版的字体转换器。 Visual C+工作区工作区 上面所示的根目录包括微软Visual C+工作区(Simulation-Trial.dsw)及项目文件 (Simulation-Trial.dsp)。双击工作区文件可以打开微软IDE。 Visual C+工作区的目录结构如下图所示。 编译演示程序编译演示程序 位于应用目录下的演示程序源文件是一个“ready-to-go”仿真,意思是你仅仅需要建立 和启动它。请注意,如果需要建立可执行文件,你必须先安装微软Visual C+(6.0或以上的 版本)。 第一步:双击Simulation-Tr

39、ial.dsw 文件打开Visual C+工作区。 第二步:在菜单中选择“Build/Rebuild All” (或按“F7”键)重建项目。 第 3 页 C/GUI 中文手册 第 3 章 仿真器 第三步:在菜单中选择“Build/Start Debug/Go” (或按“F5”键)开始仿真。 演示项目开始运行,在任意时候可能通过单击右键并选择“Exit”退出。 编译范例程序编译范例程序 目录“Sample”包括“ready-to-go”范例程序,可以示范C/GUI的不同特性及提供它们 的典型应用的例子。为了建立这些可执行文件,它们的C源代码必须加入项目中。通过下面的 步骤很容易做到: 第一步:双

40、击Visual C+工作区的“Application”文件夹。演示文件会出现在它下 面。 第二步:选择“Application”文件夹下的所有文件,按下“Delete”键将它们删除。 这些文件并不是真是被删除了,只是从项目中移走。 第三步:现在你有了一个空的“Application”文件夹。在其上面单击右键,选择需 加入的文件加入到文件夹,出现一个对话框。 第四步:双击“Sample”文件夹,选择里面的一个范例文件。你的工作区目录应该 如下图所示。当然,文件名可以不一样;在这里,很重要的一件事是“Application” 文件夹只能包含你所想编译的范例的C文件,而不能是其它种类的文件。 第五步

41、:在菜单下选择“Build/Rebuild All”(或按“F7”键)重建范例文件。 第六步:在菜单中选择“Build/Start Debug/Go” (或按“F5”键)开始仿真。上 面所选择范例的仿真结果如下图所示: 第 4 页 C/GUI 中文手册 第 3 章 仿真器 3.3 使用使用C/GUI 源代码的仿真器源代码的仿真器 目录结构目录结构 仿真器的根目录可以在PC上的任意位置,例如:C:workGSCSim。目录结构如下图所示, 该目录结构与我们推荐的用于目标应用的目录结构很相似(参阅第2章:“入门指南”以获得 更多信息)。子目录GUI包括C/GUI程序文件,用于目标(交叉)编译器的同

42、名目录中也要有 同名的文件。 你不应对GUI子目录做任何改变, 因为这样会使C/GUI升级到新的版本变得困难。 配置目录包括需要修改的配置文件,以反映你的目标硬件设置(主要是LCD尺寸和能够显示的 颜色)。 第 5 页 C/GUI 中文手册 第 3 章 仿真器 Visual C+工作区工作区 上面所显示的根目录包括微软Visual C+工作区(Simulation.dsw)和项目文件 (Simulation.dsp)。 工作区允许你在编译应用程序将其用于目标系统之前进行修改及调试。 Visual C+ 工作区的目录结构与下图所示的相似。 在这, GUI文件夹是打开的, 显示C/GUI 子目录。

43、请注意,你的GUI目录可能与下图并不完全一样,这取决于你所拥有的C/GUI的附加 特性。文件夹“Core”,“Font”及“LCDDriver”是基本C/GUI软件包的一部分,总在工作 区目录中显示。 编译你的应用程序编译你的应用程序 仿真演示包括一个或多个可以修改的C文件(在“Application”目录下),你也可以在 项目中增加或删除文件。最典型的是你至少应该把位图修改成为你公司的徽标或所选择的图 片。你应该在Visual C+ 工作区中重建程序以进行测试及调试。一旦你获得一个满意的结果 并打算在你的应用中使用该程序,你应该能够在目标系统中编译这些同样的文件,得目标显 示上得到同样的结果

44、。使用仿真器的通常的处理步骤如下所述: 第 6 页 C/GUI 中文手册 第 3 章 仿真器 第一步:双击Simulation.dsw 文件打开Visual C+工作区。 第二步:在菜单下选择“Build/Rebuild All”(或按“F7”键)编译项目。 第三步:在菜单中选择“Build/Start Debug/Go”(或按“F5”键)开始仿真。 第四步:使用你的徽标或图片代替原有的位图。 第五步:如果有需要,对应用程序进行更大的修改,这通过编辑源代码和增加/删除 文件来完成。 第六步:在Visual C+中编译及运行应用程序测试结果,根据你的需要进行继续修 改和调试。 第七步:在你的目标

45、系统上编译及运行应用程序。 3.4 观察器观察器 如果你使用仿真器调试你的应用程序,当你对源代码执行单步调试时无法看到LCD输出。 观察器可能解决这个问题,它能显示仿真的LCD窗口和色彩窗口。观察器的执行文件是 “ToolC-GUI-View.exe”。 使用仿真器和观察器 使用仿真器和观察器 如果你在调试应用程序之前或正在调试时,想启动观察器,同时使用仿真器及观察器是 你的选择。我们建议: 第一步:启动观察器。在仿真开始前,没有LCD或色彩窗口出现。 第二步:打开Visual C+ 工作区。 第三步:编译和运行应用程序。 第 7 页 C/GUI 中文手册 第 3 章 仿真器 第四步:如先前描

46、述的一样调试应用程序。 优点是,当你使用单步操作时,能在LCD窗口中显示所有相应绘图操作。观察器窗口默认 的位置总是在顶部,你可能通过在菜单中选择“ViewAlways on top”修改这个行为。 3.5 设备仿真及其它高级特性设备仿真及其它高级特性 警告:设备仿真和以其为基础的其它特性,是高级特性,可以对仿真器源代码提出要求 以使其能工作于目标系统。通常这些源代码不随 警告:设备仿真和以其为基础的其它特性,是高级特性,可以对仿真器源代码提出要求 以使其能工作于目标系统。通常这些源代码不随C/GUI一起提供。请和我们联系得到更多的 信息。 C/GUI一起提供。请和我们联系得到更多的 信息。 仿真器能够在你所选择的一张位图中显示仿真的LCD,例如你的目标设备的图片。该位图 能够在屏幕上任意拖动,在某些应用中,可以用于仿真整个目标设备的行为。 为了仿真设备的外观,需要一幅位图。该位图通常是设备的照片(顶视图),必须命名 为Device.bmp。它可以是一个独立文件(在同一目录下作为一个可执行文件),或是做为一 个资源包括进应用程序当中,下面一行表示该位图文件包括在资源文件(extension.rc)中: 145 BITMAP DISCARDABLE “Device.bmp“ 更多的信息,请参考Win

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1