qiulilin458611 发表于 2011-4-23 18:44:22

LCD配置问题

大家好!我在看裸奔教程的配套程序时,对LCD的配置有些迷惑。比如下面的这条语句,是在配置视频缓冲器的地址,但是为什么这样写呢? LCD_BUFFER是程序定义的一个数组啊,又不是寄存器!而且我在把这个语句移植到别的工程里去的时候编译无法通过。(我的变量定义等都正确)
rLCDSADDR1=(((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);
请各位高手指点,我困惑好久了。谢谢!

WTW11897 发表于 2011-4-24 14:04:31

恩 我也看不懂这个是真么意思,帮顶~

jsjs2002 发表于 2011-4-26 21:30:43

LCDSADDR1的LCDBANK的值为A,而A=((U32)LCD_BUFFER>>22);A表示ADDRESS
LCDSADDR1的LCDBASEU的值位A,而A=((U32)LCD_BUFFER>>1) &0x1fffff//取低21 bits
所以,rLCDSADDR1=(LCDBANK)|(LCDBASEU)=(A<<21)|(LCDBASEU)=(((U32)LCD_BUFFER>>22)<<21)|(((U32)LCD_BUFFER>>1) &0x1fffff)
页: [1]
查看完整版本: LCD配置问题