您的位置:首页 > 其它

【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完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐