📄 lcdlib.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 + -