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

 

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

 

 

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