我的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返回座標

 

    此部分是沒有隊列緩衝區的,  即可能會丟失輸入數據, 不過對我們的應用而已, 夠用了.

 

 

寫字真是比較難啊! 自已心的明白的事,用文字表達出來,總是不夠好, 有時會詞不達意.  想想那些技術作家, 真是不容易啊!

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