微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于嵌入式处理器S3C44B0X的μC/GUI设计

基于嵌入式处理器S3C44B0X的μC/GUI设计

时间:03-23 来源:互联网 点击:

需要的功能;(5)编写自己的应用程序;限于篇幅限制,本文只给出移植的核心步骤:接口驱动程序代码的编写。

4.2 μ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; i320*240; i++) /* 初始化显存 */

*(pLCDBuffer256+i) = 0x0;

rPDATD = 0xff;;

rPCOND = 0xaaaa; /* PDATD[7 :0]: 此处初始化为0xff */

rPUPD = 0x00; /* PCOND[15:0]: 配置为功能端 */

/* PUPD [7 :0]: 允许相应位的上拉电阻(0=允许, 1=禁止) */

rLCDCON1 = (0)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);

/* disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/

rLCDCON2 = (LINEVAL)|(HOZVAL10)|(LINEBLANK21);

/* 使用彩色模式, LCDBANK=0xc000000, LCDBASEU=0x0 */

rLCDSADDR1= (MODESEL27) | (((U32)pLCDBuffer256>>22)21) |
M5D((U32)pLCDBuffer256>>1);

rLCDSADDR2= M5D(((U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT))>>1) |
(MVAL21);

rLCDSADDR3= PAGEWIDTH | (OFFSIZE9);

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; /* 使能8位单扫描/

rLCDCON1 = (1)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);

Delay(5000);

LCD_BkLight(TRUE); /* 开背光 */
LCD_DisplayOpen(TRUE); /* 打开LCD显示 */}

完成如上LCD驱动以后, 再设置相应的中断服务子程序(IS), μC/GUI即可以稳定地运行在S3C44B0X硬件平台上。

4.3 μC/GUI配置文件参数的修改

主要是对配置文件LCDConf.h的修改,针对本文使用的320×240彩色LCD,就要作如下修改LCDConf.h的内容:

#define LCDCONF_H

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

#define LCD_YSIZE (240)/* LCD竖直分辨率 */

#define LCD_BITSPERPIXEL (8)

涉及到LCD寄存器常量的设置等这里不再赘述。另外,本文使用的硬件平台配有1×4键盘,键盘连接到S3C44B0X的I/O口上,在μC/GUI的移植过程中,对键盘的使用主要是通过检测相对应的I/O口的电平(0或1)来进行对键盘按下与否的判断。

5. GUI用户模型设计

有了以上基于S3C44B0X的μC/GUI移植过程,用户就可以按照自己的要求设计GUI。图3所示为笔者设计的一个测试用GUI,体现了GUI设计的基本要素和思想。

图3.3 测试用户界面图

其中,图a为测试LCD位图和键盘的GUI,包含滑动按钮和固定按钮以及颜色测试条;图b为常用的正弦波测试图,以红色为背景,格线和波形图采用白色。

6.小结

在分析μC/GUI原理及功能的基础上, 详细讨论了嵌入式图形用户界面在基于S3C44B0X目标平台上的移植过程,并给出移植核心程序——驱动接口程序。程序经检测成功运行于硬件平台,且运行稳定,实时性强。

本文作者创新点在于融合了μC/GUI移植简便、使用方便灵活、功能强大和ARM处理器功耗小、便携、代码执行效率高等优点。代码稍加修改即可广泛用于智能仪表、便携式设备等智能终端,有良好的应用前景。

参考文献:

[1] 李岩,荣盘祥. 基于S3C44B0X嵌入式uClinux系统原理及应用[M].北京:清华大学出版社,2005.

[2] 杨光友,周国柱,张道德,丁毅.嵌入式测控仪器图形界面设计[J].中国仪器仪表.2004.(10):36-39

[3] 江俊辉.基于ARM的嵌入式系统硬件设计[J]. 微计算机信息,2005 年21卷第7-2期120页.

[4] μC/GUI用户手册[M].Micrium公司,2003.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top