我的chGUI (3)

    LCD模拟器.

上编介绍了, 我使用的经改写ucGUI的模拟器, 但此摸拟器和ucGUI的连系太紧密了, 花了大半天的时间, 才将其分离出来,  别分离得不是很好, 但至少可以用了. 现说明如下:

一.LCD模拟器的配置.

#define LCD_XSIZE      (640)   LCD的宽
#define LCD_YSIZE      (480)   LCD的高

#define LCD_BITSPERPIXEL (8)  LCD单个像素占的位数, 即颜色的位数

#define LCD_FIXEDPALETTE 332  像素的颜色模式, 即RGB占的位数 
#define LCD_SWAP_RB 1              Red Blue的位置是否交换

以上这些配置,和ucGUI是一致的, 具体内容可参考ucGUI的资料(网上很多哟)

 

二.LCD模拟器的对外函数接口

          只对外公布二个函数. 即void  LCDSIM_SetPixelIndex(int x, int y, int Index)和int  LCDSIM_GetPixelIndex(int x, int y)

   1. void  LCDSIM_SetPixelIndex(int x, int y, int Index)

在LCD上画一个像素点, 座标是x, y,  颜色为index.

这里的Index不是真正的完整的RGB值, 而是根据上面颜色模式的配置, 对应的值. 也可以理解为我们要写入真实的LCD中的值.

在LCD模拟器中, 它的颜色是使用24位真彩色,即R8G8B8, 而我们模拟的LCD可以没有这么多位, 所以就将LCD仿真的颜色称为index,

它将在内部转化为24位的RGB.

 

   2.int  LCDSIM_GetPixelIndex(int x, int y)

取得LCD上,座标为x,y处的颜色值index, index的意义于上相同.

 

三. chGUI工程项目的组成.

      此项目由三部分组成, 一是LCD模拟器,  不需修改, 只要配置.  二是chGUI部分, 将要开发的主要部分, 三是Applicatio, 以后应用程序的部分, 现在将测试程序放在这里.

      GUI部分有一个名为convcolor的目录, 这是从ucGUI借用过来的,  为LCD模拟器所有,  也可以放入GUI中,  目前我的构想是在chGUI中尽量不用这个.

      LCD模拟器中,有一个"myType.h", 定义有一些常用的类型, 在chGUI中将使用,

 

四. LCD模拟器的输入接口

      1.   int CXM_GetKey(void)

         读取一个按键, 为0是没有键被按下.

      2. int CXM_TOUCH_GetState(GUI_PID_STATE *pState)

         读取触摸屏的状态, 返回为0没有触摸, 非0为有触摸, pState返回座标

 

    此部分是没有队列缓冲区的,  即可能会丢失输入数据, 不过对我们的应用而已, 够用了.

 

 

写字真是比较难啊! 自已心的明白的事,用文字表达出来,总是不够好, 有时会词不达意.  想想那些技术作家, 真是不容易啊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章