【Freescale i.MX21项目】系列之二-DISPLAY - 上海嵌入式家园 贺工

【Freescale i.MX21项目】系列之二-DISPLAY

Author: 贺工

上海嵌入式家园-开发板商城
嵌入式家园网址:http://www.embedclub.com/
淘宝商城网址:http://embedclub.taobao.com/




下面讲述下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完成。

你可能感兴趣的:(display)