我在0x3380 0000内存处开辟了显示内存空间,然后在ADS+HJTAG在线仿真下修改 0x3380 0001 。。。地址上的数据。从MEMORY窗口观察数据确实写进显存了,那为什么屏上没有显示呢?
附上我的初始化程序,请您帮我看看。 static void Lcd_Init(void) { rGPCUP=0xffffffff; // Disable Pull-up register rGPCCON=0xaaaaaaaa; //Initialize VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND
rGPDUP=0xffffffff; // Disable Pull-up register rGPDCON=0xaaaaaaaa; //Initialize VD[15:8]
frameBuffer16BitTft320240A = (U32(*)[SCR_XSIZE_TFT_320240])LCDFRAMEBUFFERA; //frameBuffer16BitTft320240B = (U16(*)[SCR_XSIZE_TFT_320240])LCDFRAMEBUFFERB; //frameBuffer16BitTft320240C = (U16(*)[SCR_XSIZE_TFT_320240])LCDFRAMEBUFFERC;
rLCDCON1=(CLKVAL_TFT_240320<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0; // TFT LCD panel,12bpp TFT,ENVID=off rLCDCON2=(VBPD_240320<<24)|(LINEVAL_TFT_240320<<14)|(VFPD_240320<<6)|(VSPW_240320); rLCDCON3=(HBPD_240320<<19)|(HOZVAL_TFT_240320<<8)|(HFPD_240320); rLCDCON4=(MVAL<<8)|(HSPW_240320); rLCDCON5=(1<<11)|(1<<9)|(1<<8); //FRM5:6:5,HSYNC and VSYNC are inverted rLCDSADDR1=(((U32)frameBuffer16BitTft320240A>>22)<<21)|M5D((U32)frameBuffer16BitTft320240A>>1);//lcd dma 起始地址 rLCDSADDR2=M5D( ((U32)frameBuffer16BitTft320240A+(SCR_XSIZE_TFT_240320*LCD_YSIZE_TFT_240320*2))>>1 );//结束地址 rLCDSADDR3=(((SCR_XSIZE_TFT_240320-LCD_XSIZE_TFT_240320)/1)<<11)|(LCD_XSIZE_TFT_240320/1); rLCDINTMSK|=(3); // MASK LCD Sub Interrupt rLPCSEL&=(~7); // Disable LPC3600 rTPAL=0; // Disable Temp Palette } <hr> void Lcd_Tft_LTV350QV_F05_Init(void) { Lcd_Init(); //LcdBkLtSet( 70 ) ; rLPCSEL&=~(7); rLPCSEL|=(7); // 240320,Enable LPC3600 Lcd_PowerEnable(0, 1); Lcd_EnvidOnOff(1); //turn on vedio Lcd_ClearScr(0xce40);
} <hr> ************************************************************** 320×240 16Bpp TFT LCD全屏填充特定颜色单元或清屏 **************************************************************/ void Lcd_ClearScr( U32 c) { unsigned int x,y ; for( y = 0 ; y < SCR_YSIZE_TFT_320240 ; y++ { for( x = 0 ; x < SCR_XSIZE_TFT_320240 ; x++ ) { frameBuffer16BitTft320240A[y][x] = c ; } } } |