首页>
技术资讯>
详情

WinCE的LCD驱动程序编写指南

2016-05-12 来源:佚名 阅读量: 0
关键词: WINCE

    本文以1024*768分辨率的TFT_16BPP真彩LCD为例,说明在WIN CE 4.2中驱动程序的修改事项,目标板的微处理器是S3C2410A。

    该LCD的时序图如下图所示:

    Note:LCD时序的参数和时钟相位因不同LCD而异,请参考相应LCD的datasheet.

    在WIN CE 4.2中修改LCD驱动程序有五个相关文件,分别是:

    1.    …\WINCE420\PLATFORM\SMDK2410\INC\s2410.h

    2.    …\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c

    3.    …\WINCE420\PLATFORM\SMDK2410\DRIVERS\DISPLAY\S3C2410LCD\s3c2410disp.cpp

    4.    …\WINCE420\PLATFORM\SMDK2410\FILES\config.bib

    5.    …\ WINCE420\PLATFORM\SMDK2410\FILES\platform.reg

    1.  s2410.h

    …\WINCE420\PLATFORM\SMDK2410\INC\s2410.h

    主要有LCD控制器的寄存器定义、LCD控制器的工作时序定义、分辨率的定义等等。红色部分为修改后的内容:

    #define LCDTYPE                       TFT16BPP

    #define LCD_TYPE                     TFTxxx_xxx

    #define SCR_XSIZE_TFT            (1280)

    #define SCR_YSIZE_TFT            (960)

    #define LCD_XSIZE_TFT           (1024)

    #define LCD_YSIZE_TFT            (768)

    #define VBPD                            ((2-1)&0xff)

    #define VFPD                            ((2-1)&0xff)

    #define VSPW                           ((2-1) &0x3f)

    #define HBPD                            ((16-1)&0x7f)

    #define HFPD                            ((200-1)&0xff)

    #define HSPW                           ((16-1)&0xff)

    #define CLKVAL_TFT               (1)   //这个值的定义在LCD初始化函数中并不用到,而是直接用数值表示。

    2.  cfw.c

    …\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c

    红色部分为修改后的内容:

    static void InitDisplay()

    {

    ********

    s2410LCD->rLCDCON1=(1《8)|(MVAL_USED《7)|(3《5)|(12《1)|0;

    // CLKVAL_TFT = 1 , HCLK = 100MHz -> VCLK = 25MHz

    //TFT LCD panel

    //16 bpp for TFT

    s2410LCD->rLCDCON2=(VBPD《24)|(LINEVAL_TFT《14)|(VFPD《6)|(VSPW);

    s2410LCD->rLCDCON3=(HBPD《19)|(HOZVAL_TFT《8)|(HFPD);

    s2410LCD->rLCDCON4=(MVAL《8)|(HSPW);

    s2410LCD->rLCDCON5=

    (1《11)|(0《10)|(0《9)|(0《8)|(0《7)|(0《6)|(0《3)|(0《1)|(1《0);

    //5:6:5 Format

    //The video data is fetched at VCLK falling edg

热门推荐 查看更多