程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 我的chGUI (3)

我的chGUI (3)

編輯:關於C語言

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

 

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

 

 

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved