我的chGUI (3)

发布时间:2019-09-23 17:09:11编辑:auto阅读(1832)

        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返回坐标

     

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

     

     

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

关键字