新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于uCGUI的数据显示系统

基于uCGUI的数据显示系统

作者: 时间:2011-05-12 来源:网络 收藏
(3)完整的液晶初始化程序

本文引用地址:https://www.eepw.com.cn/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);

  经过以上几步,就完成了液晶的硬件驱动,下面就是移植软件包,调用底层驱动,完成复杂的显示任务。

  3 uC/GUI软件包的移植

  3.1 uC/GUI特点

  (1)支持任何8位、16位和32位的CPU,只要求CPU具有相应的ANSI-C编译器即可;

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

  (3)字符、位图可显示与LCD的任意点,并不限制与字节长度的整数倍数地址;

  (4)所有程序在长度和速度方面都进行了优化,结构清晰;

  (5)对于慢速的LCD控制器,可以使用缓冲存储器减少访问时间,提高显示速度。

  3.2 uC/GUl移植步骤

  在使用uC/GUI时,可以按照以下几个步骤来进行:

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

  (2)指定硬件设备的地址,编写接口驱动代码;

  (3)编译、链接、调试例子程序;

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

  (5)编写自己的应用程序。

  3.3 具体实现

  (1)首先介绍uC/GUI的目录结构和基本配置。

  uC/GUI主要目录如下:

  GUI/ConvertMono 使用黑白显示设备时,所要使用的灰度转换函数

  GUI/ConvertColor 使用彩色显示设备时,使用的色彩转换函数

  GUI/Config 包含了对uC/GUI进行配置的一些文件

  GUI/Core uC/GUI核心代码

  GUI/Font uC/GUI与字体相关的代码文件

  GUI/LCDDriver LCD驱动代码文件

  GUI/MemDev 内存设备支持文件代码

  GUI/Touch 输入设备支持的文件代码

  GUI/Widget uC/GU1支持的控件代码,包括编辑框、列表框、按钮和选择框等

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

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

  在ADS环境中新建一个工程,将上述gui文件夹下的所有文件加入工程。

  将Config文件夹下的3个文件GUIConf.h、

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

  /*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*/

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



评论


相关推荐

技术专区

关闭