| 嵌入式图形用户界面在S3C44B0X上的移植 |
| 当前位置: 论文资料 >> 计算机论文 >> 计算机应用 >> 嵌入式图形用户界面在S3C44B0X上的移植 | ||
| 嵌入式图形用户界面在S3C44B0X上的移植 | ||||
|
3.3 μC/GUI与输入输出设备驱动接口模块设计 本文以LCD驱动接口模块设计为例介绍在μC/GUI移植过程中LCD驱动程序的编写,以最终实现图形显示。 驱动程序主要是LCD初始化,这个函数完成对44B0X LCD控制器的配置、显存的映射等。这里还是以320×240彩色LCD为例介绍一下初始化程序的编写。具体如下: void LCD_Init(void) { int i; LCD_DisplayOpen(FALSE); /* 关LCD显示 */ for(i=0; i<320*240; i++) /* 初始化显存 */ *(pLCDBuffer256+i) = 0x0; rPDATD = 0xff;; /* PDATD[7 :0]: 此处初始化为0xff */ rPCOND = 0xaaaa; /* PCOND[15:0]: 配置为功能端 */ rPUPD = 0x00; /* PUPD [7 :0]: 允许相应位的上拉电阻(0=允许, 1=禁止) */ rLCDCON1 = (0)|(DISMODE<<5)|(WDLY<<8)|(WLH<<10)|(CLKVAL<<12); /* disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/ rLCDCON2 = (LINEVAL)|(HOZVAL<<10)|(LINEBLANK<<21); /* 彩色模式, LCDBANK=0xc000000, LCDBASEU=0x0 */ rLCDSADDR1= (MODESEL<<27) | (((U32)pLCDBuffer256>>22)<<21) | M5D((U32)pLCDBuffer256>>1); rLCDSADDR2= M5D(((U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT))>>1) | (MVAL<<21); rLCDSADDR3= PAGEWIDTH | (OFFSIZE<<9); rREDLUT = 0xfdb97531; /* 设置红绿蓝三色的颜色值*/ rGREENLUT = 0xfdb97531; rBLUELUT = 0xfb73; 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; /* enable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/ rLCDCON1 = (1)|(DISMODE<<5)|(WDLY<<8)|(WLH<<10)|(CLKVAL<<12); Delay(5000); LCD_BkLight(TRUE); /* 开背光 */ LCD_DisplayOpen(TRUE); /* 打开LCD显示 */ } 完成如上LCD驱动以后, 再设置相应的中断服务子程序(IS), μC/GU I就可以稳定地运行在μC/OS-II和目标平台之上了。 3.4 μC/GUI配置文件参数的修改 主要是LCDConf.h配置文件的修改,如果LCD选用320×240彩色,就要作如下修改LCDConf.h的内容: /*LCDConf.h*/ #ifndef LCDCONF_H #define LCDCONF_H #define LCD_XSIZE (320) /* LCD水平分辨率 */ #define LCD_YSIZE (240) /* LCD竖直分辨率 */ #define LCD_BITSPERPIXEL (8) #endif 另外,还涉及到LCD寄存器常量的设置等这里不一一详述。 到这里μc/GUI的移植基本完成。本文只介绍了μc/GUI结合LCD在基于S3C44B0X的μC/OS-II上的移植。如果涉及到输入设备键盘、鼠标以及触摸屏的移植还要编写相应的驱动程序和其相关参数的修改。 4 结束语 |
||||
|
|
||||