24402410 LCD显示屏驱动程序.doc
文本预览下载声明
u-boot早就支持framebuffer了,不光显示图片,还可以把控制台重定向到lcd上,只是24x0部分缺代码罢了,需要填充一个结构体,可以从openmoko那里copy过来。不过如果只是为了显示一张图片的话……初始化lcd控制器的代码随便放哪里运行都可以的吧!LCD显示屏驱动程序
#include config.h
// GPB1/TOUT1 for Backlight control(PWM)#define GPB1_TO_OUT() (rGPBUP = 0xfffd, rGPBCON = 0xfffffff3, rGPBCON |= 0#define GPB1_TO_1() (rGPBDAT |= 0x0002)#define GPB1_TO_0() (rGPBDAT = 0xfffd)
//extern void Uart_Printf(char *f, ...) ;
extern unsigned char __CHS[];extern unsigned char __VGA[];
//volatile staticunsigned short LCD_BUFFER[SCR_YSIZE_TFT][SCR_XSIZE_TFT];
static void Lcd_PowerEnable(int invpwren,int pwren);static void Lcd_Init(void){rGPCUP = 0rGPCCON = 0xaaaa02a9;
// rGPDUP=0xffffffff; // Disable Pull-up registerrGPDUP = 0rGPDCON=0xaaaaaaaa; //Initialize VD[15:8]
rLCDCON1=(CLKVAL_TFT 8)|(MVAL_USED 7)|(3 5 )|(12 1)|0;// TFT LCD panel,16bpp TFT,ENVID=offrLCDCON2=(VBPD 24)|(LINEVAL_TFT 14)|(VFPD 6)|(VSPW);rLCDCON3=(HBPD 19)|(HOZVAL_TFT 8)|(HFPD);rLCDCON4=(MVAL 8)|(HSPW);#if(LCD_TYPE == PT035)rLCDCON5 = (1 11) | (1 10) | (0 9) | (0 8) | (1 7) | (1 6)| (1 3) |(BSWP 1) | (HWSWP);#elif(LCD_TYPE == WD_F3224)rLCDCON5 = (1 11) | (1 10) | (0 9) | (0 8) | (0 7) | (0 6)| (1 3) |(0 1) | (HWSWP);#elif(LCD_TYPE == TX11D)rLCDCON5 = (1 11) | (0 10) | (0 9) | (0 8) | (0 7) | (0 6)| (1 3) | (1 2) | (BSWP 1) | (HWSWP);#endif
rLCDSADDR1=(((U32)LCD_BUFFER22)21)|M5D((U32)LCD_BUFFER1);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 InterruptrTCONSEL = (~7) ; // Disable LPC3480rTPAL=0; // Disable Temp Palette}
static void Lcd_EnvidOnOff(int onoff){if(onoff == 1)rLCDCON1 |= 1; // ENVID=ONelserLCDCON1 = rLCDCON1 0x3fffe; // ENVID Off}
static void Lcd_PowerEnable(int invpwren,int pwren){//GPG4 is setted as LCD_PWRENrGPGUP = rGPGUP ( ~(1 4)) |(1 4); // Pull-up disablerGPGCON
显示全部