第20章 底层配置
在目标系统上使用µC/GUI 之前,需要为你的应用配置软件。配置指的的是配置(头)文
件的修改,这些文件通常位于(子)目录“Config”中。我们尽可能使配置保持简单些,但
有一些配置宏(在文件 LCDConf.h 中)是需要的,这是为了使系统能正确工作。包括:
LCD 宏,定义显示屏的尺寸及可选择功能(例如镜像等等)。
LCD 控制宏,定义如何访问你使用的控制器。
µC/GUI 中文手册
第 1 页
第 20 章 低层次配置
20.1 可用的配置宏
下表列出了可供µC/GUI 的底层配置使用的宏:
类型
宏
默认值
说明
通用(必需的)配置
S
N
S
N
N
LCD_CONTROLLER
LCD_BITSPERPIXEL
LCD_FIXEDPALETTE
LCD_XSIZE
LCD_YSIZE
---
---
---
---
---
选择 LCD 控制器。
指定每像素的位。
定 义 颜 色 查 询 表 ( 则 必 须 定 义
LCD_PHYSCOLORS)。
定义 LCD 的水平分辨率。
定义 LCD 的垂直分辨率。
初始化控制器
F
LCD_INIT_控制器()
---
LCD 控制器初始化顺序。不适用于所有控制器。
B
B
B
N
N
N
N
LCD_MIRROR_X
LCD_MIRROR_Y
LCD_SWAP_XY
LCD_VXSIZE
LCD_VYSIZE
LCD_XORG
LCD_YORG
N
LCD_MAX_LOG_COLORS
A
LCD_PHYSCOLORS
B
LCD_PHYSCOLORS_IN_RAM
LCD_REVERSE
LCD_SWAP_RB
LCD_XMAG
LCD_YMAG
显示方向
0
0
0
激活 X 轴镜象。
激活 Y 轴镜象。
行转换成列,列转换成行(XY 轴交换)。
LCD_XSIZE 虚拟显示的水平分辨率。不适用于所有驱动器。
LCD_YSIZE 虚拟显示的垂直分辨率。不适用于所有驱动器。
0
0
LCD controller :最左边(最小的)X 坐标。
LCD controller :最顶端(最小的)Y 坐标。
颜色配置
256
---
0
0
0
在一幅位图中驱动器能支持的逻辑颜色的最大数
量。
定 义 颜 色 查 询 表 的 内 容 。 只 有 在
LCD_FIXEDPALETTE 被设置为 0 时才需要。
只有定义了物理颜色的情况下才相应有效。把物
理颜色放入 RAM 中,使它们在运行时可以修改。
激活在编译时的反转显示。
激活红、蓝基色的交换。
LCD 的放大
1
1
LCD 的水平方向放大系数。
LCD 的垂直方向放大系数。
简单的总线接口配置
B
B
N
N
F
F
F
F
F
F
F
F
LCD_READ_A0(Result)
LCD_READ_A1(Result)
LCD_WRITE_A0(Byte)
LCD_WRITE_A1(Byte)
LCD_WRITEM_A1
---
---
---
---
---
址址线为低电平,从 LCD 控制器读一个字节。
址址线为高电平,从 LCD 控制器读一个字节。
址址线为低电平,向 LCD 控制器写一个字节。
址址线为高电平,向 LCD 控制器写一个字节。
址址线为高电平,向 LCD 控制器写入多个字节。
完整总线接口配置
LCD_READ_MEM(Index)
LCD_READ_REG(Index)
LCD_WRITE_MEM(Index, Data)
---
---
---
读取控制器图像存储器的内容。
读取控制器一个配置寄存器的内容。
向控制器图像存储器(显示数据 RAM)写入内容。
第 2 页
µC/GUI 中文手册
第 20 章 低层次配置
F
S
LCD_WRITE_REG(Index, Data)
LCD_BUSWIDTH
F
LCD_ENABLE_REG_ACCESS
---
16
---
F
LCD_ENABLE_MEM_ACCESS
---
B
LCD_SWAP_BYTE_ORDER
0
向控制器配置寄存器写入内容。
选择 LCD 控制器/CPU 的接口的总线宽度(8/16)。
切换 M/R 信号进行寄存器访问。并不适用于所有
的控制器。
切换 M/R 信号进行存储器访问。并不适用于所有
的控制器。
在使用一个 16 位总线接口时,激活在 CPU 和
LCD 控制器之间的端模式的反转(高低字节交
换)。
LCD 控制器配置:公共极(行)/段(列)连线
N
N
N
N
LCD_XORG
LCD_YORG
LCD_FIRSTSEG
LCD_LASTSEG
0
LCD controller :最左边(最小的)X 坐标
LCD controller :最顶端(最小的)Y 坐标
LCD controller :使用的第 1 段(列)连线。
LCD_XSIZE-1 LCD controller :使用的最后 1 段(列)连线。
0
0
N
LCD_FIRSTCOM
0
N
LCD_LASTCOM
LCD_YSIZE-1
LCD controller :使用的第 1 个公共极(行)
连线。
LCD controller :使用的最后 1 个公共极(行)
连线。
A
A
LCD_LUT_COM
LCD_LUT_SEG
N
LCD_NUM_CONTROLLERS
B
LCD_CACHE
B
LCD_USE_BITBLT
COM/SEG(公共极/段) 查询表
---
---
控制器 COM 查询表.
控制器 SEG 查询表.
杂项
1
1
1
使用的 LCD 控制器的数量。
停用以禁止显示数据高速缓存使用,使驱动器的
速度慢下来。并不适用于所有的控制器。
停用以禁止 BitBLT 引擎,如果设为 1,驱动器将
使用所有有效的硬件加速度。
激 活 以 启 用 驱 动 器 API 函 数
B
LCD_SUPPORT_CACHECONTROL
0
LCD_L0_ControlCache() 的高速缓存控制功能。
并不适用于所有的控制器。
使用 CPU 作为控制器时,为显示 pane 0 而用于
ISR 的计时值。
使用 CPU 作为控制器时,为显示 pane 1 而用于
ISR 的计时值。
打开 LCD 的函数替换宏。
切断 LCD 的函数替换宏。
---
---
---
---
N
LCD_TIMERINIT0
N
LCDTIMERINIT1
F
F
LCD_ON
LCD_OFF
如何配置 LCD。
我们推荐使用下面的操作步骤:
1. 对有相似配置的配置文件进行拷贝,我们要对拷贝的文件进行编辑。在目录 Sample\
LCDConf\ xxx 中有几个特定 LCD 控制器的配置范例,其中“xxx”是你的 LCD 驱动
µC/GUI 中文手册
第 3 页
第 20 章 低层次配置
器。
2. 通过定义简单总线或完全总线宏来配置总线接口。
3. 定义你的 LCD 尺寸(LCD_XSIZE, LCD_YSIZE)。
4. 选择你的系统使用的控制器,同时选择合适的 bpp 和调色板模式(LCD_CONTROLLER,
LCD_BITSPERPIXEL,LCD_FIXEDPALETTE)。
5. 如果需要,配置所使用的 公共极(行)/段(列)连线。lines。
6. 测试系统。
7. 如果有需要,进行 X/Y 轴反转(LCD_REVERSE);返回第 6 步。
8. 如果有需要,进行 X/Y 轴镜象(LCD_MIRROR_X, LCD_MIRROR_Y);返回第 6 步。
9. 检查所有其它配置开关。
10. 删除配置中未使用的部分。
20.2 通用(必需的)配置
LCD_CONTROLLER
描述
定义使用的 LCD 控制器。
类型
选择开关。
附加信息
使用的 LCD 控制器通过适当的数字指定。请参阅第 22 章:“LCD 驱动”以获得更多可用
选项的信息。
范例
指定一个 Epson SED1565 控制器:
#define LCD_controller 1565
/* 选择 SED1565 LCD 控制器 */
LCD_BITSPERPIXEL
描述
第 4 页
µC/GUI 中文手册
第 20 章 低层次配置
指定每像素的位的数量。
类型
数值。
LCD_FIXEDPALETTE
描述
指定固定调色板模式。
类型
选择开关。
附加信息
将 数 值 设 置 为 0 表 示 使 用 一 个 颜 色 查 询 表 而 不 是 一 个 固 定 设 色 板 模 式 。 这 样
LCD_PHYSCOLORS 宏必须定义。
LCD_XSIZE; LCD_YSIZE
描述
(分别)定义所用显示屏水平和垂直的分辨率。
类型
数值。
附加信息
数值是逻辑尺寸;X 轴方向指定了所有 LCD 驱动函数的 X 轴方向。通常 X 轴尺寸等于段(列)
的数量。
µC/GUI 中文手册
第 5 页
第 20 章 低层次配置
20.3 初始化控制器
LCD_INIT_CONTROLLER()
描述
初始化 LCD 控制器。
类型
函数替换。
附加信息
该 宏 必 须 被 用 户 定 义 以 初 始 化 一 些 控 制 器 。 它 在 驱 动 函 数 LCD_L0_Init() 和
LCD_L0_Reinit()之间执行。请参考你的控制器的资料手册以获得如何初始化你的硬件设备的
更多信息。
范例
下面的范例测试一个 Epson SED1565 控制器,它使用一个内部电源调整器。
#define LCD_INIT_CONTROLLER()
\LCD_WRITE_A0(0xe2); /* 内部复位 */
\LCD_WRITE_A0(0xae); /* 显示开/关:关 */
\LCD_WRITE_A0(0xac); /* Power save 开始:static indicator off */
\LCD_WRITE_A0(0xa2); /* LCD 偏置选择:1/9 */
\LCD_WRITE_A0(0xa0);
/* ADC 选择:正常 */
\LCD_WRITE_A0(0xc0); /* 公共模式:正常 */
\LCD_WRITE_A0(0x27); /* 5V 电压调节器:中 */
\LCD_WRITE_A0(0x81); /* 进入电子音量模式 */
\LCD_WRITE_A0(0x13); /* 电子音量:中 */
\LCD_WRITE_A0(0xad); /* Power save 结束:static indicator on */
\LCD_WRITE_A0(0x03); /* static indicator 寄存器设置:开(常开)*/
\LCD_WRITE_A0(0x2F); /* 电源控制设置:升压器,调节器及跟随器关闭 */
\LCD_WRITE_A0(0x40); /* 显示开始行 */
\LCD_WRITE_A0(0xB0); /* 显示地址 0 页 */
\LCD_WRITE_A0(0x10); /* 显示列地址 MSB */
第 6 页
µC/GUI 中文手册
第 20 章 低层次配置
\LCD_WRITE_A0(0x00); /* 显示列地址 LSB */
\LCD_WRITE_A0(0xaf); /* 显示 开/关:开 */
\LCD_WRITE_A0(0xe3); /* 空命令
20.4 显示方向
LCD_MIRROR_X
描述
反转显示屏的 X 方向(水平)。
类型
二进制开关
0:禁止,X 轴方向未镜像(默认);1:激活,X 轴方向镜像。
附加信息
如果激活:X -> LCD_XSIZE-1-X。
该宏与 LCD_MIRROR_Y 和 LCD_SWAP_XY 结合,能用于对显示屏任何方向的支持。在改变
这个配置开关之前,确认 LCD_SWAP_XY 设为你的应用所需要的值。
LCD_MIRROR_Y
描述
反转显示屏的 Y 方向(垂直)。
类型
二进制开关
0:禁止,Y 轴方向未镜像(默认);1:激活,Y 轴方向镜像。
附加信息
µC/GUI 中文手册
第 7 页
第 20 章 低层次配置
如果激活:Y -> LCD_YSIZE-1-Y。
该宏与 LCD_MIRROR_X 和 LCD_SWAP_XY 结合,能用于对显示屏任何方向的支持。在改变
这个配置开关之前,确认 LCD_SWAP_XY 设为你的应用所需要的值。
LCD_SWAP_XY
描述
交换显示屏水平和垂直的方向。
类型
二进制开关
0:禁止,X-Y 未交换(默认);1:激活,X-Y 交换。
附加信息
如果设为 0(没有交换),SEG 连线作为列,COM 连线作为行。如果激活:X -> Y。
修改这个开关时,你也必须交换显示屏分辨率 X-Y 设置(使用 LCD_XSIZE 和 LCD_YSIZE)。
LCD_VXSIZE; LCD_VYSIZE
描述
定义虚拟显示的水平和垂直分辨率。
类型
数值。
附加信息
数值是逻辑尺寸;X 方向指定所有 LCD 驱动函数使用的 X 方向。
如果没有使用虚拟显示器,这些数值应该与 LCD_XSIZE,LCD_YSIZE(这些默认设置)一
样。
第 8 页
µC/GUI 中文手册