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

📄 lcdlib.h

📁 一个非常好的bootloader
💻 H
字号:
#define	COLOR_RED_TFT16		0xf800
#define	COLOR_GREEN_TFT16	0x07e0
#define	COLOR_BLUE_TFT16	0x001f

#define LCDFRAMEBUFFER 0x33800000

#define S3C2410_LCDCON1_TFT	   (3<<5)

#define S3C2410_LCDCON1_TFT16BPP   (12<<1)

#define S3C2410_LCDCON1_CLKVAL(x)  ((x) << 8)
#define S3C2410_LCDCON2_VBPD(x)	    ((x) << 24)

#define S3C2410_LCDCON2_VBPD(x)	    ((x) << 24)
#define S3C2410_LCDCON2_LINEVAL(x)  ((x) << 14)
#define S3C2410_LCDCON2_VFPD(x)	    ((x) << 6)
#define S3C2410_LCDCON2_VSPW(x)	    ((x) << 0)

#define S3C2410_LCDCON2_GET_VBPD(x) ( ((x) >> 24) & 0xFF)
#define S3C2410_LCDCON2_GET_VFPD(x) ( ((x) >>  6) & 0xFF)
#define S3C2410_LCDCON2_GET_VSPW(x) ( ((x) >>  0) & 0x3F)

#define S3C2410_LCDCON3_HBPD(x)	    ((x) << 19)
#define S3C2410_LCDCON3_WDLY(x)	    ((x) << 19)
#define S3C2410_LCDCON3_HOZVAL(x)   ((x) << 8)
#define S3C2410_LCDCON3_HFPD(x)	    ((x) << 0)
#define S3C2410_LCDCON3_LINEBLANK(x)((x) << 0)

#define S3C2410_LCDCON3_GET_HBPD(x) ( ((x) >> 19) & 0x7F)
#define S3C2410_LCDCON3_GET_HFPD(x) ( ((x) >>  0) & 0xFF)

#define S3C2410_LCDCON4_MVAL(x)	    ((x) << 8)
#define S3C2410_LCDCON4_HSPW(x)	    ((x) << 0)
#define S3C2410_LCDCON4_WLH(x)	    ((x) << 0)




#define LCD5_BPP24BL	(1 << 12)
#define LCD5_FRM565		(1 << 11)
#define LCD5_INVVCLK	(1 << 10)	/* STN/TFT :
	   1 : video data is fetched at VCLK falling edge
	   0 : video data is fetched at VCLK rising edge */
#define LCD5_INVVLINE	(1 << 9)	/* STN/TFT :
	   1 : VLINE/HSYNC pulse polarity is inverted */
#define LCD5_INVVFRAME	(1 << 8)	/* STN/TFT :
	   1 : VFRAME/VSYNC pulse polarity is inverted */
#define LCD5_INVVD	(1 << 7)	/* STN/TFT :
	   1 : VD (video data) pulse polarity is inverted */
#define LCD5_INVVDEN	(1 << 6)	/* TFT :
	   1 : VDEN signal polarity is inverted */
#define LCD5_INVPWREN	(1 << 5)
#define LCD5_INVLEND	(1 << 4)	/* TFT :
	   1 : LEND signal polarity is inverted */
#define LCD5_PWREN	(1 << 3)
#define LCD5_LEND	(1 << 2)	/* TFT,1 : Enable LEND signal */
#define LCD5_BSWP	(1 << 1)	/* STN/TFT,1 : Byte swap enable */
#define LCD5_HWSWP	(1 << 0)	/* STN/TFT,1 : HalfWord swap enable */

#define M5D(n) ((n) & 0x1fffff)	// To get lower 21bits

	
//TFT 240320
#define LCD_XSIZE_TFT_240320 	(240)	
#define LCD_YSIZE_TFT_240320 	(320)
//TFT 320X240
#define LCD_XSIZE_TFT_320240 	(320)
#define LCD_YSIZE_TFT_320240 	(240)
//TFT 480X272
#define LCD_XSIZE_TFT_480272 	(480)
#define LCD_YSIZE_TFT_480272 	(272)

//TFT 640480
#define LCD_XSIZE_TFT_640480 	(640)	
#define LCD_YSIZE_TFT_640480 	(480)
//TFT 800600
#define LCD_XSIZE_TFT_800600 	(800)	
#define LCD_YSIZE_TFT_800600 	(600)

//TFT 240320
#define SCR_XSIZE_TFT_240320 	(LCD_XSIZE_TFT_240320*2)
#define SCR_YSIZE_TFT_240320 	(LCD_YSIZE_TFT_240320*2)
//TFT 320240
#define SCR_XSIZE_TFT_320240 	(LCD_XSIZE_TFT_320240*2)
#define SCR_YSIZE_TFT_320240 	(LCD_YSIZE_TFT_320240*2)
//TFT 480272
#define SCR_XSIZE_TFT_480272 	(LCD_XSIZE_TFT_480272*2)
#define SCR_YSIZE_TFT_480272 	(LCD_YSIZE_TFT_480272*2)
//TFT 640480
#define SCR_XSIZE_TFT_640480 	(LCD_XSIZE_TFT_640480*2)
#define SCR_YSIZE_TFT_640480 	(LCD_YSIZE_TFT_640480*2)
//TFT 800600
#define SCR_XSIZE_TFT_800600 	(LCD_XSIZE_TFT_800600*2)
#define SCR_YSIZE_TFT_800600 	(LCD_YSIZE_TFT_800600*2)



#define LCD_240X320 1

#define LCD_320X240 2
#define LCD_480x272 3
#define LCD_640480  3

typedef struct  {
	unsigned int lcd_id;
	unsigned long	lcdcon1;
	unsigned long	lcdcon2;
	unsigned long	lcdcon3;
	unsigned long	lcdcon4;
	unsigned long	lcdcon5;
	unsigned int xsize;
	unsigned int ysize;
	unsigned int scr_xsize;
	unsigned int scr_ysize;
	
}LCD_CONFIG;

 LCD_CONFIG tft_240x320 =
{
		LCD_240X320,
		 S3C2410_LCDCON1_TFT16BPP | \
				  S3C2410_LCDCON1_TFT | \
				  S3C2410_LCDCON1_CLKVAL(10),

		S3C2410_LCDCON2_VBPD(2) | \
				S3C2410_LCDCON2_LINEVAL(319)| \
			  	S3C2410_LCDCON2_VFPD(2)| \
			 	 S3C2410_LCDCON2_VSPW(4),
			 	 
		S3C2410_LCDCON3_HBPD(8) | \
				S3C2410_LCDCON3_HOZVAL(239)| \
			  	S3C2410_LCDCON3_HFPD(8),
			  	
		S3C2410_LCDCON4_MVAL(13) | \
				S3C2410_LCDCON4_HSPW(6),

		LCD5_FRM565 | LCD5_HWSWP | LCD5_PWREN,
		LCD_XSIZE_TFT_240320,
		LCD_YSIZE_TFT_240320,
		SCR_XSIZE_TFT_240320,
		 SCR_YSIZE_TFT_240320
		
};

  LCD_CONFIG tft_320X240 =
{
		 LCD_320X240,

		 S3C2410_LCDCON1_TFT16BPP | \
				  S3C2410_LCDCON1_TFT | \
				  S3C2410_LCDCON1_CLKVAL(5),

		S3C2410_LCDCON2_VBPD(14) | \
				S3C2410_LCDCON2_LINEVAL(239)| \
			  	S3C2410_LCDCON2_VFPD(5)| \
			 	 S3C2410_LCDCON2_VSPW(3),
			 	 
		S3C2410_LCDCON3_HBPD(36) | \
				S3C2410_LCDCON3_HOZVAL(319)| \
			  	S3C2410_LCDCON3_HFPD(20),
			  	
		 S3C2410_LCDCON4_MVAL(13) | \
				S3C2410_LCDCON4_HSPW(30),

		LCD5_FRM565 |LCD5_INVVCLK|LCD5_INVVLINE|LCD5_INVVFRAME| \
	LCD5_INVVDEN| LCD5_PWREN|LCD5_HWSWP,
		LCD_XSIZE_TFT_320240,
		LCD_YSIZE_TFT_320240,
		SCR_XSIZE_TFT_320240,
		SCR_YSIZE_TFT_320240
};		

  LCD_CONFIG tft_480x272 =
{
		 LCD_480x272,

		 S3C2410_LCDCON1_TFT16BPP | \
				  S3C2410_LCDCON1_TFT | \
				  S3C2410_LCDCON1_CLKVAL(5),

		 S3C2410_LCDCON2_VBPD(2) | \
				S3C2410_LCDCON2_LINEVAL(271)| \
			  	S3C2410_LCDCON2_VFPD(2)| \
			 	 S3C2410_LCDCON2_VSPW(10),
			 	 
		S3C2410_LCDCON3_HBPD(2) | \
				S3C2410_LCDCON3_HOZVAL(479)| \
			  	S3C2410_LCDCON3_HFPD(2),
			  	
		S3C2410_LCDCON4_MVAL(13) | \
				S3C2410_LCDCON4_HSPW(41),

	 		LCD5_FRM565 |LCD5_INVVCLK |LCD5_INVVLINE|LCD5_INVVFRAME| \
	 	LCD5_INVVDEN| LCD5_PWREN|LCD5_HWSWP,
		LCD_XSIZE_TFT_480272,
		LCD_YSIZE_TFT_480272,
		SCR_XSIZE_TFT_480272,
		SCR_YSIZE_TFT_480272
		
		
};	

⌨️ 快捷键说明

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