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