⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdinit.c

📁 s3c2440 bootloader适用于S3C2440开发板
💻 C
字号:
#include "def.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "Lcd.h"

//#define ATLOG

U16 (*frameBuffer16BitTft)[SCR_XSIZE_TFT];

#ifdef ATLOG
#include "bitmap.c"
#endif

void LcdInit(void)
{

	frameBuffer16BitTft = (U16 (*)[SCR_XSIZE_TFT])LCDFRAMEBUFFER;
	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)|(1<<10)|(0<<8)|(1<<0);	//FRM5:6:5,HSYNC and VSYNC are inverted
	rLCDSADDR1          = (((U32)frameBuffer16BitTft>>22)<<21)|M5D((U32)frameBuffer16BitTft>>1);
	rLCDSADDR2          = M5D( ((U32)frameBuffer16BitTft+(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           &=~((1<<4)|1);	     	// Disable LCC3600, LPC3600
	rTPAL               = 0;                    // Disable Temp Palette
	
	rLCDCON1           |= 1;                 	// ENVID=ON

}

#ifdef ATLOG
void LcdDrawMap (void)
{
	int x,y;
	int i;
	
	i = 0;  
	for(y=0; y<LCD_YSIZE_TFT; y++){
		for(x=0; x<LCD_XSIZE_TFT; x++)
		frameBuffer16BitTft[y][x]  = ScreenBitmap[i++];
		
    }

}
#else
void LcdDrawMap (void)
{
int x,y;
	#define	RED_YSIZE (LCD_YSIZE_TFT/3)
	#define	RED_XSIZE (LCD_XSIZE_TFT/3)
	#define	GREEN_YSIZE (RED_YSIZE*2)
	#define	GREEN_XSIZE (RED_XSIZE*2)
	#define	BLUE_YSIZE (LCD_YSIZE_TFT)
	#define	BLUE_XSIZE (LCD_XSIZE_TFT)
	
	for(y=0; y<RED_YSIZE; y++){
		for(x=0; x<RED_XSIZE; x++)
			frameBuffer16BitTft[y][x] = COLOR_RED_TFT16;
		for(x=RED_XSIZE; x<GREEN_XSIZE; x++)    
            frameBuffer16BitTft[y][x] = COLOR_GREEN_TFT16;
		for(x=GREEN_XSIZE; x<BLUE_XSIZE; x++)    
            frameBuffer16BitTft[y][x] = COLOR_BLUE_TFT16;
    }        
	for(y=RED_YSIZE; y<GREEN_YSIZE; y++){
		for(x=0; x<RED_XSIZE; x++)
			frameBuffer16BitTft[y][x] = COLOR_BLUE_TFT16;
		for(x=RED_XSIZE; x<GREEN_XSIZE; x++)    
            frameBuffer16BitTft[y][x] = COLOR_RED_TFT16;
		for(x=GREEN_XSIZE; x<BLUE_XSIZE; x++)    
            frameBuffer16BitTft[y][x] = COLOR_GREEN_TFT16;
    }
	for(y=GREEN_YSIZE; y<BLUE_YSIZE; y++){
		for(x=0; x<RED_XSIZE; x++)
			frameBuffer16BitTft[y][x] = COLOR_GREEN_TFT16;
		for(x=RED_XSIZE; x<GREEN_XSIZE; x++)    
            frameBuffer16BitTft[y][x] = COLOR_BLUE_TFT16;
		for(x=GREEN_XSIZE; x<BLUE_XSIZE; x++)    
            frameBuffer16BitTft[y][x] = COLOR_RED_TFT16;
    }
}
#endif

void LcdDisplay(void)
{
	LcdInit();
//#ifdef ATLOG	
	LcdDrawMap();
//#endif	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -