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返回座標
此部分是沒有佇列緩衝區的, 即可能會丟失輸入資料, 不過對我們的應用而已, 夠用了.
寫字真是比較難啊! 自已心的明白的事,用文字表達出來,總是不夠好, 有時會詞不達意. 想想那些技術作家, 真是不容易啊!