【Freescale i.MX21项目】系列之二-DISPLAY - 上海嵌入式家园 贺工
2008-04-13 23:19
661 查看
【Freescale i.MX21项目】系列之二-DISPLAY
[b]Author: 贺工
上海嵌入式家园-开发板商城
嵌入式家园网址:http://www.embedclub.com/
淘宝商城网址:http://embedclub.taobao.com/
[/b]
下面讲述下DISPLAY的开发过程。
硬件配置: i.MX21 + Sharp LQ043T3DX02 4.3" 480*272
软件配置: WinCE 5
系列一中我们提到在OAL中就已经实现了DISPLAY的设置,并且DISPLAY也已经成功ENABLE。 因此,决定就直接使用OAL中DISPLAY寄存器设置操作:
..\Src\Kernel\oal\dispaly.c
我觉得关键要做的就是对PCR寄存器中正确设置了。
static BOOL LCDcInitialize(int width, int height, int bpp)
{
......
pLCDC->PCR = CSP_BITFVAL(LCDC_PCR_SHARP, LCDC_PCR_SHARP_DISPLAY) |
......
CSP_BITFVAL(LCDC_PCR_SHARP, LCDC_PCR_SHARP_DISPLAY) |
CSP_BITFVAL(LCDC_PCR_SCLKIDLE, LCDC_PCR_SCLKIDLE_ENABLE) |
CSP_BITFVAL(LCDC_PCR_CLKPOL, LCDC_PCR_CLKPOL_POS_EDGE) |
CSP_BITFVAL(LCDC_PCR_LPPOL, LCDC_PCR_LPPOL_ACTIVE_LOW) |
CSP_BITFVAL(LCDC_PCR_FLMPOL, LCDC_PCR_FLMPOL_ACTIVE_LOW) |
CSP_BITFVAL(LCDC_PCR_PIXPOL, LCDC_PCR_PIXPOL_ACTIVE_HIGH) |
......
);
}
static void LCDEnable(BOOL bEnable)
{
......
if(bEnable)
{
......
// Turn on LCD Panel: PA31 Oupput 1
// Light Backlight: PE5 Output 1
}
else
{
......
// Disable LCD Panel: PA31 Oupput 0
// Disable Backlight: PE5 Output 0
}
}
然后, 就是头文件: ..\Src\Inc\bsp_cfg.h
定义一些相关宏定义了
#define BSP_DISPLAY_SCREEN_WIDTH 480
#define BSP_DISPLAY_SCREEN_HEIGHT 272
#define BSP_PIXEL_CLOCK_FREQ 9000000 //9MHZ
#define BSP_DISPLAY_BPP BSP_DISPLAY_16BPP
最后,就是注释掉LcdcClass::LcdcClass(void)中相关DISPLAY控制寄存器设置代码。因为,我们在OAL中已经设置好了。
至此, DISPLAY驱动ENABLE完成。
[b]Author: 贺工
上海嵌入式家园-开发板商城
嵌入式家园网址:http://www.embedclub.com/
淘宝商城网址:http://embedclub.taobao.com/
[/b]
下面讲述下DISPLAY的开发过程。
硬件配置: i.MX21 + Sharp LQ043T3DX02 4.3" 480*272
软件配置: WinCE 5
系列一中我们提到在OAL中就已经实现了DISPLAY的设置,并且DISPLAY也已经成功ENABLE。 因此,决定就直接使用OAL中DISPLAY寄存器设置操作:
..\Src\Kernel\oal\dispaly.c
我觉得关键要做的就是对PCR寄存器中正确设置了。
static BOOL LCDcInitialize(int width, int height, int bpp)
{
......
pLCDC->PCR = CSP_BITFVAL(LCDC_PCR_SHARP, LCDC_PCR_SHARP_DISPLAY) |
......
CSP_BITFVAL(LCDC_PCR_SHARP, LCDC_PCR_SHARP_DISPLAY) |
CSP_BITFVAL(LCDC_PCR_SCLKIDLE, LCDC_PCR_SCLKIDLE_ENABLE) |
CSP_BITFVAL(LCDC_PCR_CLKPOL, LCDC_PCR_CLKPOL_POS_EDGE) |
CSP_BITFVAL(LCDC_PCR_LPPOL, LCDC_PCR_LPPOL_ACTIVE_LOW) |
CSP_BITFVAL(LCDC_PCR_FLMPOL, LCDC_PCR_FLMPOL_ACTIVE_LOW) |
CSP_BITFVAL(LCDC_PCR_PIXPOL, LCDC_PCR_PIXPOL_ACTIVE_HIGH) |
......
);
}
static void LCDEnable(BOOL bEnable)
{
......
if(bEnable)
{
......
// Turn on LCD Panel: PA31 Oupput 1
// Light Backlight: PE5 Output 1
}
else
{
......
// Disable LCD Panel: PA31 Oupput 0
// Disable Backlight: PE5 Output 0
}
}
然后, 就是头文件: ..\Src\Inc\bsp_cfg.h
定义一些相关宏定义了
#define BSP_DISPLAY_SCREEN_WIDTH 480
#define BSP_DISPLAY_SCREEN_HEIGHT 272
#define BSP_PIXEL_CLOCK_FREQ 9000000 //9MHZ
#define BSP_DISPLAY_BPP BSP_DISPLAY_16BPP
最后,就是注释掉LcdcClass::LcdcClass(void)中相关DISPLAY控制寄存器设置代码。因为,我们在OAL中已经设置好了。
至此, DISPLAY驱动ENABLE完成。
相关文章推荐
- 【Freescale i.MX21项目】系列之--Eboot, OAL - 上海嵌入式家园 贺工
- 【SAMSUNG S3C2440A 项目开发】系列之--BootLoader - 上海嵌入式家园 贺工
- 【好消息】:上海嵌入式家园-开发板商城新年巨献,隆重推出Mini2440开发板实战项目套餐系列
- 连接USB转串口线,串口没有消息出来, 怎么办? 上海嵌入式家园-开发板代理商城 贺工
- RHEL5/Fedora下RPM的使用 - 上海嵌入式家园 贺工
- 基于CE的嵌入式软件开发程序入门 - 上海嵌入式家园 贺工
- 连接USB转串口线,串口有消息出来,可是不能输入字符,按下键盘没反应,怎么办呢?- 上海嵌入式家园 贺工
- rpm包管理详解(结合rpm,rpm2cpio,cpio提取rpm包的特定文件) - 上海嵌入式家园 贺工
- Windows CE 编程的十点忠告 - 上海嵌入式家园 贺工
- Fedora 9 下tftp的安装与配置步骤 - 上海嵌入式家园 贺工
- 【申嵌视频-mini2440专题篇之ARM微处理器开发基础班】下载地址 - 上海嵌入式家园贺工
- 【申嵌视频-mini2440专题篇之Linux驱动开发基础班】下载地址 - 上海嵌入式家园贺工
- 【转贴】在Solaris中使用用户态程序直接访问I/O端口 - 上海嵌入式家园 贺工
- 关于mini2440/micro2440下的Qtopia编译错误解答 - 上海嵌入式家园 贺工
- 【转帖】/bin/sh与/bin/bash的细微区别 上海嵌入式家园 贺工
- RHEL5下TFTP服务器配置步骤 - 上海嵌入式家园-开发板商城 贺工
- 购买JLink的客户注意事项 JLink V7 JLink V8仿真器怎么选择? - 上海嵌入式家园 贺工
- 嵌入式学习步骤 上海嵌入式家园-开发板代理商城贺工
- Fedora 9下VMWareTools安装步骤 - 上海嵌入式家园 贺工
- CMOS/USB摄像头选购链接 - 上海嵌入式家园 贺工