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

📄 lcdlib.h

📁 2410开发测试程序
💻 H
字号:
/************************************************ 
	NAME	: LCDLIB.H
	DESC	:
	Revision History
	2002.03.12 : draft ver 0.0
 ************************************************/

#ifndef __LCDLIB_H__
#define __LCDLIB_H__

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

//STN LCD Panel(320*240)
#define MODE_STN_1BIT			(0x1001)
#define MODE_STN_2BIT			(0x1002)
#define MODE_STN_4BIT			(0x1004)
//Color STN LCD Panel(320*240)
#define MODE_CSTN_8BIT			(0x2001)
#define MODE_CSTN_12BIT 		(0x2002)
//TFT LCD Panel(240*320)
#define MODE_TFT_1BIT_240320	(0x4101)
#define MODE_TFT_8BIT_240320	(0x4102)
#define MODE_TFT_16BIT_240320	(0x4104)
//TFT LCD Panel(640*480)
#define MODE_TFT_1BIT_640480	(0x4201)
#define MODE_TFT_8BIT_640480	(0x4202)
#define MODE_TFT_16BIT_640480	(0x4204)
#define MODE_TFT_24BIT_640480	(0x4208)
//TFT LCD Panel(800*600)
#define MODE_TFT_1BIT_800600	(0x4401)
#define MODE_TFT_8BIT_800600	(0x4402)
#define MODE_TFT_16BIT_800600	(0x4404)

//STN
#define LCD_XSIZE_STN	(320)
#define LCD_YSIZE_STN	(240)
//Color STN
#define LCD_XSIZE_CSTN	(320)
#define LCD_YSIZE_CSTN	(240)
//TFT 240320
#define LCD_XSIZE_TFT_240320	(240)	
#define LCD_YSIZE_TFT_240320	(320)
//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)

//STN
#define SCR_XSIZE_STN	(LCD_XSIZE_STN*2)	//for virtual screen	
#define SCR_YSIZE_STN	(LCD_YSIZE_STN*2)
//Color STN
#define SCR_XSIZE_CSTN	(LCD_XSIZE_CSTN*2)	//for virtual screen	
#define SCR_YSIZE_CSTN	(LCD_YSIZE_CSTN*2)
//TFT 240320
#define SCR_XSIZE_TFT_240320	(LCD_XSIZE_TFT_240320*2)
#define SCR_YSIZE_TFT_240320	(LCD_YSIZE_TFT_240320*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)

//STN
#define HOZVAL_STN		(LCD_XSIZE_STN/4-1)	// Valid VD data line number is 4.
#define LINEVAL_STN		(LCD_YSIZE_STN-1)
//Color STN
#define HOZVAL_CSTN		(LCD_XSIZE_CSTN*3/8-1)	// Valid VD data line number is 8.
#define LINEVAL_CSTN	(LCD_YSIZE_CSTN-1)
//TFT240320
#define HOZVAL_TFT_240320	(LCD_XSIZE_TFT_240320-1)
#define LINEVAL_TFT_240320	(LCD_YSIZE_TFT_240320-1)
//TFT640480
#define HOZVAL_TFT_640480	(LCD_XSIZE_TFT_640480-1)
#define LINEVAL_TFT_640480	(LCD_YSIZE_TFT_640480-1)
//TFT800600
#define HOZVAL_TFT_800600	(LCD_XSIZE_TFT_800600-1)
#define LINEVAL_TFT_800600	(LCD_YSIZE_TFT_800600-1)

//STN
#define WLH_STN			(0)
#define WDLY_STN		(0)
#define LINEBLANK_MONO	(1 &0xff) // MONO timing parameter for CPT CLS-040S-C3M(CHUNGHWA)
#define LINEBLANK_GRAY	(13 &0xff)// GRAY timing parameter for CPT CLS-040S-C3M(CHUNGHWA)
//CSTN timing parameter for LCBHBT161M(NANYA)
#define WLH_CSTN		(0)
#define WDLY_CSTN		(0)
#define LINEBLANK_CSTN	(16 &0xff)
//Timing parameter for LTS350Q1(SAMSUNG) 
#define VBPD_240320		((2-1)&0xff)
#define VFPD_240320		((3-1)&0xff)
#define VSPW_240320		((2-1) &0x3f)
#define HBPD_240320		((7-1)&0x7f)
#define HFPD_240320		((3-1)&0xff)
#define HSPW_240320		((4-1)&0xff)
//Timing parameter for V16C6448AB(PRIME VIEW) 
#define VBPD_640480		((33-1)&0xff)
#define VFPD_640480		((10-1)&0xff)
#define VSPW_640480		((2-1) &0x3f)
#define HBPD_640480		((48-1)&0x7f)
#define HFPD_640480		((16-1)&0xff)
#define HSPW_640480		((96-1)&0xff)
//Timing parameter for LP104S5-B2AP(LGPHILIPS) 
#define VBPD_800600		((2-1)&0xff)
#define VFPD_800600		((3-1)&0xff)
#define VSPW_800600		((1-1) &0x3f)
#define HBPD_800600		((30-1)&0x7f)
#define HFPD_800600		((30-1)&0xff)
#define HSPW_800600		((12-1)&0xff)


#define CLKVAL_STN_MONO		(20)	
	// 64hz @50Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=1*8hclk,VD=4 
#define CLKVAL_STN_GRAY		(10)	
	// 120hz @50Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=13*8hclk,VD=4 
#define CLKVAL_CSTN		(6)	
	// 130hz @50Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=16*8hclk,VD=8	
#define CLKVAL_TFT_240320	(4)	
	// 60hz @50Mhz
	//VSYNC,HSYNC should be inverted
	//HBPD=6VCLK,HFPD=2VCLK,HSPW=3VCLK
	//VBPD=1HSYNC,VFPD=2HSYNC,VSPW=1HSYNC
#define CLKVAL_TFT_640480	(1)
	//53.5hz @90Mhz
	//VSYNC,HSYNC should be inverted
	//HBPD=47VCLK,HFPD=15VCLK,HSPW=95VCLK
	//VBPD=32HSYNC,VFPD=9HSYNC,VSPW=1HSYNC
#define CLKVAL_TFT_800600	(0)
	//85hz @90Mhz
	//71hz @76Mhz
	//VSYNC,HSYNC should be inverted
	//HBPD=29VCLK,HFPD=29VCLK,HSPW=11VCLK
	//VBPD=1HSYNC,VFPD=2HSYNC,VSPW=0HSYNC
#define LCDFRAMEBUFFER 0x33800000 //_NONCACHE_STARTADDRESS 
	// 1. The LCD frame buffer should be write-through or non-cachable.
	// 2. The total frame memory should be inside 4MB.
	// 3. To meet above 2 conditions, the frame buffer should be 
	// inside the following regions.
	// 0x31000000~0x313ffffff,
	// 0x31400000~0x317ffffff,
	// 0x31800000~0x31bffffff,
	//		.....	
	// 0x33800000~0x33bffffff				


//Mono
extern U32 (*frameBuffer1Bit)[SCR_XSIZE_STN/32];
//Gray
extern U32 (*frameBuffer2Bit)[SCR_XSIZE_STN/16];
extern U32 (*frameBuffer4Bit)[SCR_XSIZE_STN/8];
//Color STN
extern U32 (*frameBuffer8Bit)[SCR_XSIZE_CSTN/4];
extern U32 (*frameBuffer12Bit)[SCR_XSIZE_CSTN*3/8]; // The least common multiple (between 12 and 32) is 96
//TFT 240320
extern U32 (*frameBuffer8BitTft240320)[SCR_XSIZE_TFT_240320/4];
extern U32 (*frameBuffer16BitTft240320)[SCR_XSIZE_TFT_240320/2];
//TFT 640480
extern U32 (*frameBuffer1BitTft640480)[SCR_XSIZE_TFT_640480/32];
extern U32 (*frameBuffer8BitTft640480)[SCR_XSIZE_TFT_640480/4];
extern U32 (*frameBuffer16BitTft640480)[SCR_XSIZE_TFT_640480/2];
extern U32 (*frameBuffer24BitTft640480)[SCR_XSIZE_TFT_640480]; // Unpacked 24bit 
//TFT 800600
extern U32 (*frameBuffer1BitTft800600)[SCR_XSIZE_TFT_800600/32];
extern U32 (*frameBuffer8BitTft800600)[SCR_XSIZE_TFT_800600/4];
extern U32 (*frameBuffer16BitTft800600)[SCR_XSIZE_TFT_800600/2];


void Lcd_Init(int type);
void MoveViewPort(int);
void Lcd_CstnOnOff(int onoff);
void Lcd_EnvidOnOff(int onoff);
void Lcd_PowerEnable(int invpwren,int pwren);
void Lcd_MoveViewPort(int vx,int vy,int type);
void Lcd_Lpc3600Enable(void);


#endif /*__LCDLIB_H__*/

⌨️ 快捷键说明

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