第4节 驱动配置头文件LCD_Config
在驱动程序当中,还配备了一个头文件:LCD_Config.h;在该文件里对LCD模块的点阵数量,以及坐标轴方向作了软件的定义,另外还定义了一些在LCD初始化时的LCD寄存器命令。下面先看看有关LCD寄存器命令的定义,如下:
LCD控制器的寄存器设置命令(实际上就是命令与数据的结合)在LCD的初始化代码当中使用(前面列出的LCD初始化代码是作了修改的,只是把宏定义换为数字表示而已),下面可以再看看实际程序中的初始化代码:
而LCD_Config.h头文件当中对一些数据类型进行了重定义,以便于移植液晶程序时,无需全盘的修改整个程序,当然这些定义还对应着液晶模块的一些特性,如下:
比如:LCDBYTE,关系着液晶模块的数据位宽,一般单色的液晶模块直接使用unsigned char即可,毕意一般来说C语言当中也不好去定义小于这个长度的变量;而彩色的TFT(比如16位色深度的TFT)使用unsigned short,即该变量长度的定义,决定着驱动程序中传输给液晶模块显示的点的颜色位数,也即数据位宽。
DOTBYTE的定义与液晶模块的点阵数量有关系,比如MzL02模块的点阵数为128×64,也就是说明,在我们表示这个模块的X和Y轴地址时,是不会超过unsigned char的最大值的,而象一些点数多的模块,如320×240的模块,就不能再用unsigned char了,而应该用unsigned short或者int型。
DISWORD的定义一般用在一些绘图计算时产生的中间量数据的定义。
而LCD_Config.h当中还有一些定义如下:
配置文件中对LCD的物理尺寸(点数)进行了定义,并在随后定义了软件上进行坐标变换以及坐标轴反转;在LCD驱动的功能接口程序当中,将会引用这些定义,来限制对LCD的显控操作,以防止操作超出LCD的显示范围。
在完整版的驱动程序的功能程序当中,程序将会从Dis_X_MAX和Dis_Y_MAX获得定义的LCD屏物理点数,所以LCD_XY_Switch的定义将决定X轴和Y轴的坐标是否对调了,当然在代码当中还会有一些代码根据LCD_XY_Switch的定义而有选择性的进行编译,以配合坐标轴的变换。而类似的定义还有LCD_X_Rev和LCD_Y_Rev,都在功能程序当中有相应的宏定义选择对应的代码进行编译。
LCD_INITIAL_COLOR定义了LCD屏初始化时的背景色。
而由宏:LCD_XY_Switch、LCD_X_Rev和LCD_Y_Rev管控的坐标轴变换体系的条件编译代码如下,当然也是在LCD_Config.h当中。


LCD控制器的寄存器设置命令(实际上就是命令与数据的结合)在LCD的初始化代码当中使用(前面列出的LCD初始化代码是作了修改的,只是把宏定义换为数字表示而已),下面可以再看看实际程序中的初始化代码:


而LCD_Config.h头文件当中对一些数据类型进行了重定义,以便于移植液晶程序时,无需全盘的修改整个程序,当然这些定义还对应着液晶模块的一些特性,如下:

比如:LCDBYTE,关系着液晶模块的数据位宽,一般单色的液晶模块直接使用unsigned char即可,毕意一般来说C语言当中也不好去定义小于这个长度的变量;而彩色的TFT(比如16位色深度的TFT)使用unsigned short,即该变量长度的定义,决定着驱动程序中传输给液晶模块显示的点的颜色位数,也即数据位宽。
DOTBYTE的定义与液晶模块的点阵数量有关系,比如MzL02模块的点阵数为128×64,也就是说明,在我们表示这个模块的X和Y轴地址时,是不会超过unsigned char的最大值的,而象一些点数多的模块,如320×240的模块,就不能再用unsigned char了,而应该用unsigned short或者int型。
DISWORD的定义一般用在一些绘图计算时产生的中间量数据的定义。
而LCD_Config.h当中还有一些定义如下:

配置文件中对LCD的物理尺寸(点数)进行了定义,并在随后定义了软件上进行坐标变换以及坐标轴反转;在LCD驱动的功能接口程序当中,将会引用这些定义,来限制对LCD的显控操作,以防止操作超出LCD的显示范围。
在完整版的驱动程序的功能程序当中,程序将会从Dis_X_MAX和Dis_Y_MAX获得定义的LCD屏物理点数,所以LCD_XY_Switch的定义将决定X轴和Y轴的坐标是否对调了,当然在代码当中还会有一些代码根据LCD_XY_Switch的定义而有选择性的进行编译,以配合坐标轴的变换。而类似的定义还有LCD_X_Rev和LCD_Y_Rev,都在功能程序当中有相应的宏定义选择对应的代码进行编译。
LCD_INITIAL_COLOR定义了LCD屏初始化时的背景色。
而由宏:LCD_XY_Switch、LCD_X_Rev和LCD_Y_Rev管控的坐标轴变换体系的条件编译代码如下,当然也是在LCD_Config.h当中。


这些重定义的函数的介绍在LCD_Config.h当中都有详细的注释,在此就不一一说明了,而其中的Writ_Dot(x,y,c)的宏定义是对底层驱动中的Write_Dot_LCD函数进行了重新的包装,当然是针对于不同的坐标轴变换条件下,这样在LCD_Dis.c中的各种绘图、字符显示功能程序,就调用Writ_Dot宏来间接调用Write_Dot_LCD函数;这样,如果需要修改液晶屏显示的坐标关系时,只需要修改LCD_Config.h当中的宏定义即可。其实,这里相当于做了一个软件的坐标变换体系。


