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

📄 lcdlib.h

📁 三星2413芯片的测试代码,对进行驱动开发很有帮助.
💻 H
字号:
/************************************************ 
  NAME    : LCDLIB.H
  DESC    :
  Revision History
  2002.03.12 : draft ver 0.0
 ************************************************/

#ifndef __LCDLIB_H__
#define __LCDLIB_H__

#ifdef __cplusplus
extern "C" {
#endif

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

//Selecting LCD type
//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_1BIT_P   (0x2101)
#define MODE_CSTN_2BIT_P   (0x2102)
#define MODE_CSTN_4BIT_P   (0x2104)
#define MODE_CSTN_8BIT_P   (0x2108)

#define MODE_CSTN_8BIT   (0x2001)
#define MODE_CSTN_12BIT (0x2002)
#define MODE_CSTN_16BIT (0x2008)
//TFT LCD Panel(240*320)
#define MODE_TFT_1BIT_240320     (0x4101)
#define MODE_TFT_8BIT_240320 	 (0x4102)
#define MODE_TFT_16BIT_240320    (0x4104)
#define MODE_TFT_24BIT_240320    (0x4108)

//TFT LCD Panel(320*240)
#define MODE_TFT_1BIT_320240     (0x4801)
#define MODE_TFT_8BIT_320240 	 (0x4802)
#define MODE_TFT_16BIT_320240    (0x4804)
#define MODE_TFT_24BIT_320240    (0x4808)

//Physical LCD resolution
//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 320240
#define LCD_XSIZE_TFT_320240 	(320)	
#define LCD_YSIZE_TFT_320240 	(240)


//Virtual screen size
//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)   //No 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 320240
#define SCR_XSIZE_TFT_320240 	(LCD_XSIZE_TFT_320240*2)
#define SCR_YSIZE_TFT_320240 	(LCD_YSIZE_TFT_320240*2)


//Valid data 
//STN
#define HOZVAL_STN		(LCD_XSIZE_STN)	// Valid VD data line number is 4.
#define LINEVAL_STN		(LCD_YSIZE_STN)
//Color STN
#define HOZVAL_CSTN			(LCD_XSIZE_CSTN)
#define LINEVAL_CSTN		(LCD_YSIZE_CSTN)
//TFT240320
#define HOZVAL_TFT_240320	(LCD_XSIZE_TFT_240320-1)
#define LINEVAL_TFT_240320	(LCD_YSIZE_TFT_240320-1)
//TFT320240
#define HOZVAL_TFT_320240	(LCD_XSIZE_TFT_320240-1)
#define LINEVAL_TFT_320240	(LCD_YSIZE_TFT_320240-1)

//STN
#define WLH_STN	    		(1)
#define WDLY_STN			(1)
#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	        (16) //platform
#define WDLY_CSTN			(10) // platform
#define LINEBLANK_CSTN		(16 &0xff)

//Timing parameter for LTS222Q1-HF1(SAMSUNG) 
#define VBPD_240320			((9-1)&0xff)
#define VFPD_240320			((10-1)&0xff)
#define VSPW_240320			((3-1)&0xff)
#define HBPD_240320			((1-1)&0xff)
#define HFPD_240320			((6-1)&0xff)
#define HSPW_240320			((3-1)&0xff)

//Timing parameter for Landscape LTV350(SAMSUNG)
 
#define VBPD_320240		((7-1)&0xff)
#define VFPD_320240		((7-1)&0xff)
#define VSPW_320240		((3-1) &0x3f)
#define HBPD_320240		((14-1)&0x7f)
#define HFPD_320240		((16-1)&0xff)
#define HSPW_320240		((20-1)&0xff)


#define CLKVAL_STN_MONO		(40) 	
// 30hz @100Mhz(HCLK),WLH=16hclk,WDLY=16hclk,LINEBLANK=1*8hclk,VD=4 
#define CLKVAL_STN_GRAY		(45) 	
// 60hz @100Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=13*8hclk,VD=4 
//#define CLKVAL_CSTN					(70)   //(30);
//#define CLKVAL_CSTN					(45)   //(30);
#define CLKVAL_CSTN					(35)   //(30);
// 90Hz @100Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=16*8hclk,VD=8  

#define CLKVAL_TFT_240320	(12)
// 60hz CLKVAL=12 @ HCLK=133Mhz, CLKVAL=9 @ HCLK=100Mhz

#define CLKVAL_TFT_320240	(10) // 60hz CLKVAL=10 @ HCLK=133Mhz

#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                

#define LTS222		0x12345678
#define LTV350  	0x87654321
#define LTS350PD	0xa5a5a5a5
#define LTS350PE  	0x5a5a5a5a
#define USEDTFT LTS222


//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/2]; // The least common multiple (between 12 and 32) is 96
extern U32 (*frameBuffer16Bit)[SCR_XSIZE_CSTN/2]; // for 2440A
//TFT 240320
extern U32 (*frameBuffer8BitTft240320)[SCR_XSIZE_TFT_240320/4];
extern U32 (*frameBuffer16BitTft240320)[SCR_XSIZE_TFT_240320/2];
extern U32 (*frameBuffer24BitTft240320)[SCR_XSIZE_TFT_240320];
//TFT 320240
extern U32 (*frameBuffer8BitTft320240)[SCR_XSIZE_TFT_320240/4];
extern U32 (*frameBuffer16BitTft320240)[SCR_XSIZE_TFT_320240/2];
extern U32 (*frameBuffer24BitTft320240)[SCR_XSIZE_TFT_320240];



void Lcd_Init(int type);
void Lcd_Port_Init(void);
void Lcd_Port_Return(void);
void Lcd_EnvidOnOff(int onoff);
void InitLDI_LTV350(void);

void MoveViewPort(int);
void Lcd_CstnOnOff(int onoff);

void Lcd_PowerEnable(int invpwren,int pwren);
void Lcd_MoveViewPort(int vx,int vy,int type);
void Lcd_Lpc3600Enable(void);
void Lcd_Lcc3600Enable(void);
void Lcd_TconDisable(void);
void InitLDI_LTV350(void);
void InitLDI_LTS222(void);
void LutSetting(U32 mode);
void FrcSetting(void);
void CstnCommonSetting(void);
void StnCommonSetting(void);

void __irq IsrLcdFrame(void);
void __irq IsrLcdFifo(void);
void Lcd_Palette8Bit_Init(void);




#ifdef __cplusplus
}
#endif

#endif /*__LCDLIB_H__*/

⌨️ 快捷键说明

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