新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于uCGUI的數(shù)據(jù)顯示系統(tǒng)

        基于uCGUI的數(shù)據(jù)顯示系統(tǒng)

        作者: 時(shí)間:2011-05-12 來源:網(wǎng)絡(luò) 收藏
        (3)完整的液晶初始化程序

        本文引用地址:http://www.104case.com/article/150750.htm

          void LCD_Init_Controler()

          {rLCDCON1=(0)|(25)|(MVAL_USED7)|(0x38)|(0x310)|(CLKVAL_COLOR12);

          //disable,8B_SNGL_SCAN,WDLY=8clk,WLH=8clk,rLCDCON2=

          (LINEVAL)|(HOZVAL_COLOR10)|(1021);

          //LINEBLANK=10(without any calculation)

          rLCDSADDR1= (0x327) | (((U32)

          frameBuffer256>>22)21)|

          M5D((U32)frameBuffer256>>1);

          //256-color,LCDBANK,LCDBASEU

          rLCDSADDR2=M5D((((U32)frameBuffer256+(SCR_XSIZE*LCD_YSIZE))>>1))|(MVAL21);

          rLCDSADDR3= (LCD_XSIZE/2) | (((SCR_XSIZE-LCD_XSIZE)/2)9);

          //The following value has to be changed forbetter display.

          rREDLUT =0xfdb96420;

          rGREENLUT=0xfdb96420;

          rBLUELUT=0xfb40;

          rDITHMODE=0x0;

          rDP1_2=0xa5a5;

          rDP4_7=0xba5da65;

          rDP3_5=0xa5a5f;

          rDP2_3=0xd6b;

          rDP5_7=0xeb7b5ed:

          rDP3_4=0x7dbe;

          rDP4_5=0x7ebdf;

          rDP6_7=0x7fdfbfe;

          rLCDCON1= (1)|(25)|(07)|(0x38)|(0x310)|(412);

          經(jīng)過以上幾步,就完成了液晶的硬件驅(qū)動(dòng),下面就是移植軟件包,調(diào)用底層驅(qū)動(dòng),完成復(fù)雜的顯示任務(wù)。

          3 uC/GUI軟件包的移植

          3.1 uC/GUI特點(diǎn)

          (1)支持任何8位、16位和32位的CPU,只要求CPU具有相應(yīng)的ANSI-C編譯器即可;

          (2)所有硬件接口定義都使用可配置的宏;

          (3)字符、位圖可顯示與LCD的任意點(diǎn),并不限制與字節(jié)長(zhǎng)度的整數(shù)倍數(shù)地址;

          (4)所有程序在長(zhǎng)度和速度方面都進(jìn)行了優(yōu)化,結(jié)構(gòu)清晰;

          (5)對(duì)于慢速的LCD控制器,可以使用緩沖存儲(chǔ)器減少訪問時(shí)間,提高顯示速度。

          3.2 uC/GUl移植步驟

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

          (1)按照需要,定制uC/GUI;

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

          (3)編譯、鏈接、調(diào)試?yán)映绦?

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

          (5)編寫自己的應(yīng)用程序。

          3.3 具體實(shí)現(xiàn)

          (1)首先介紹uC/GUI的目錄結(jié)構(gòu)和基本配置。

          uC/GUI主要目錄如下:

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

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

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

          GUI/Core uC/GUI核心代碼

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

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

          GUI/MemDev 內(nèi)存設(shè)備支持文件代碼

          GUI/Touch 輸入設(shè)備支持的文件代碼

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

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

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

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

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

          GUITouchConf.h和LCDConf.h加入新工程,如下修改LCDConf.h的內(nèi)容:

          /*LCDConf.h*/

          #ifndef LCDCONF_H

          #define LCDCONF_H

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

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

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

          #define LCD BITSPERPIXEL(8)

          #endif /*LCDC0NF_H*/

          /*以下是S3C44B0X 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 */



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 洪雅县| 祥云县| 庄河市| 深水埗区| 安义县| 扎鲁特旗| 泰兴市| 册亨县| 三亚市| 泸州市| 元氏县| 图木舒克市| 禄劝| 贵州省| 七台河市| 喀喇| 定结县| 如皋市| 綦江县| 出国| 咸丰县| 定西市| 博野县| 鄄城县| 昭平县| 石阡县| 攀枝花市| 岚皋县| 昌吉市| 麦盖提县| 祥云县| 会泽县| 离岛区| 同仁县| 沐川县| 宁明县| 凤阳县| 左云县| 加查县| 溧阳市| 都安|