<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > uC/GUI在A(yíng)RM 內核S3C44B0X的移植實(shí)例

uC/GUI在A(yíng)RM 內核S3C44B0X的移植實(shí)例

作者: 時(shí)間:2011-12-04 來(lái)源:網(wǎng)絡(luò ) 收藏

3.2 uC/GUl步驟

在使用時(shí),可以按照以下幾個(gè)步驟來(lái)進(jìn)行:

(1)按照需要,定制;

(2)指定硬件設備的地址,編寫(xiě)接口驅動(dòng)代碼;

(3)編譯、鏈接、調試例子程序;

(4)修改例子程序,并測試增加需要的功能;

(5)編寫(xiě)自己的應用程序。

3.3 具體實(shí)現

(1)首先介紹的目錄結構和基本配置。

uC/GUI主要目錄如下:

GUI/ConvertMono 使用黑白顯示設備時(shí),所要使用的灰度轉換函數

GUI/ConvertColor 使用彩色顯示設備時(shí),使用的色彩轉換函數

GUI/Config 包含了對uC/GUI進(jìn)行配置的一些文件

GUI/Core uC/GUI核心代碼

GUI/Font uC/GUI與字體相關(guān)的代碼文件

GUI/LCDDriver LCD驅動(dòng)代碼文件

GUI/MemDev 內存設備支持文件代碼

GUI/Touch 輸入設備支持的文件代碼

GUI/Widget uC/GU1支持的控件代碼,包括編輯框、列表框、按鈕和選擇框等

GUI/WM uC/GUI窗口管理部分代碼

(2)修改uC/GUI,使之適于。

在A(yíng)DS環(huán)境中新建一個(gè)工程,將上述gui文件夾下的所有文件加入工程。

將Config文件夾下的3個(gè)文件GUIConf.h、

GUITouchConf.h和LCDConf.h加入新工程,如下修改LCDConf.h的內容:

C程序

/*LCDConf.h*/

#ifndef LCDCONF_H

#define LCDCONF_H

#define LCDG4 //lcd顏色數,必須定義,LCDMONO(單色),LCDG4(四級灰度),LCDG16(16級灰度)

#define LCD_XSIZE(640) /* LCD水平分辨率 */

#define LCD_YSIZE(480) /* LCD垂直分辨率 */

#define LCD BITSPERPIXEL(8)

#endif /*LCDC0NF_H*/

/*以下是 LCD控制器的配置*/

#include ..incoption.h

#define SCR_XSIZE (640) //視窗屏幕大小

#define SCR_YSIZE (480)

#define LCD_XSIZE (640) //液晶屏幕大小

#define LCD_YSIZE (480)

#define M5D(n)((n)0x1fffff)

#define ARRAY_SIZE_G4(SCR_XSIZE/4*SCR_YSIZE)

#define HOZVAL (LCD_XSIZE/4-1)

#define HOZVAL_COLOR (LCD_XSIZE*3/8-1)

#define LINEVAL (LCD_YSIZE-1)

#define MVAL (13)

#define CLKVAL_G4 (10)

#define MVAL_USED 0

#endif /*LCDCONF_H */

(3)加載LCD驅動(dòng)。

LCD驅動(dòng)程序如前面所述,保存在lcd44b0.c中。出了底層的初始化函數LCD_Init_Controler()以外,還需要做以下修改,這里只提關(guān)鍵部分。

主要進(jìn)行相關(guān)的寄存器配置,以及和GUI的接口程序。這里只提及關(guān)鍵部分。

① 定義顯示緩沖區時(shí)使用的char數據類(lèi)型,它是8bit的:

unsigned char Bmp[ARRAY_SIZE_G16];//液晶顯示緩沖數組

② 定義讀寫(xiě)緩沖區時(shí)使用的數據類(lèi)型,也是8bit的U8:

#define LCD_READ_MEM (Off)*((U8*)(frameBuffer256+(((U32)(Off)))))

#define LCD_WRRITE_MEM(Off,data)*((U8*)frameBuffer256+(((U32)(Off)))))=data

#define LCD_WRITE_REG(Off,data)

⑧ 定義液晶總線(xiàn)寬度定義位8bit:

#ifndef LCD_BUSWIDTH

#define LCD_BUSWIDTH(8)

#endif

④ 定義字節順序:

#define LCD_SWAP_BYTE_ORDER(0)

至此uC/GUI的基本上已經(jīng)完成了。當然這里只提供了移植的關(guān)鍵部分,更多更完整的移植還需要做不少的工作,如觸控屏的移植、鍵盤(pán)鼠標的移植以及中文字體的移植等。詳情請參閱uC/GUI手冊中Getting Started一章。

4、數據顯示程序設計

數據顯示程序主要是基于uC/GUI平臺的GUI函數庫,完成字符、曲線(xiàn)的繪制。與畫(huà)線(xiàn)相關(guān)的GUI函數有:

GUI DrawHLine()

原型:void GUI_DrawLine(int x0,int y0,int x1,int y1);

其中,x0、y0、x1、y1分別為UGI坐標系下的起點(diǎn)和終點(diǎn)的橫坐標和縱坐標。

GUI DispDec()

原型:void GUI_DispDec(I32 v,U8 Len);

其中,v為要顯示的十進(jìn)制變量值,Len為要顯示的數據的位數。

5、總結

本文主要介紹了基于7和L78C64液晶模塊硬件平臺的uC/GUI的移植,以及在工程上的應用,經(jīng)過(guò)實(shí)際應用發(fā)現,uC/GUI功能強大,響應迅速,穩定性高,具有廣泛的應用前景。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>