天嵌 ARM开发社区

 找回密码
 注册
查看: 1921|回复: 4

请教关于测试程序LCD设置寄存器的问题

[复制链接]
binxd 发表于 2010-4-9 10:36:03 | 显示全部楼层 |阅读模式
测试程序里有一段关于LCD寄存器的初始化代码:
rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
            // TFT LCD panel,12bpp TFT,ENVID=off
        rLCDCON2=(VBPD<<24)|(LINEVAL_TFT<<14)|(VFPD<<6)|(VSPW);
        rLCDCON3=(HBPD<<19)|(HOZVAL_TFT<<8)|(HFPD);
        rLCDCON4=(MVAL<<8)|(HSPW);
        rLCDCON5 = (1<<11) | (0<<10) | (1<<9) | (1<<8) | (0<<7) | (0<<6) | (1<<3)  |(BSWP<<1) | (HWSWP);

        rLCDSADDR1=(((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);
        rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );
        rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT/1);
        rLCDINTMSK|=(3); // MASK LCD Sub Interrupt
        rTCONSEL &= (~7) ;     // Disable LPC3480
        rTPAL=0; // Disable Temp Palette
有几点我不了解:
rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );
这里为什么是乘2,是因为16bpp,一个像素点占2个字节吗?
如果是的话,我想使用24bpp,一个像素点占3个字节:我将
rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
改为:
rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(3<<5)|(13<<1)|0;
然后改
rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );

rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*3))>>1 );
但是此时发现:LCD屏出现闪烁的画面?这是为什么?是不是还需要设置其他的寄存器。
另外如果对原设置做如下设置:
rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(3<<5)|(13<<1)|0;
            // TFT LCD panel,12bpp TFT,ENVID=off
rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );
则LCD屏上出现4个分块的图片,这又是为什么?
请高手帮忙解释一下原因!
 楼主| binxd 发表于 2010-4-9 10:40:25 | 显示全部楼层
另外,对rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT/1);
也不理解,为什么要这样设置呢?
亚瑟王 发表于 2010-4-9 15:39:06 | 显示全部楼层
1、如果是24位色,是4个字节,因为计算机中没有3个字节这样的概念。
2、闪烁:可能是时钟不对导致的;也可能是分辨率不对导致的。
3、分成4个色块,应该是分辨率设置不对导致的。
4、LCDSADDR3的设置是固定格式来着。
 楼主| binxd 发表于 2010-4-12 09:29:17 | 显示全部楼层
首先,谢谢亚瑟王的答复,我回去再试试,不过分辨率我没有改。我的屏是东华3.5寸LCD,320*240
还有就是不知道时钟需要怎么修改?
我所知道的是,根据屏幕像素高度和宽度,设置相应的寄存器,但是屏幕像素没有变,那么相应的寄存器值应该和16位色是一样的,那么时钟也不需要改动,和16位色的时钟保持一致。
不知道我的想法是否正确?
亚瑟王 发表于 2010-4-12 11:50:41 | 显示全部楼层
你使用天嵌科技提供的代码不需要再修改时钟了,如果你想要调试的话,需要修改LCDCON1的CLKVAL的值。具体修改方法请参考S3C2440的datasheet。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-6 12:19 , Processed in 1.026406 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表