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

📄 lcd.h

📁 2440 CPU 的boot loader 引导代码
💻 H
字号:
#ifndef __LCD_H__
#define __LCD_H__

#include "lcdcontroller.h"
#include "Release.h"

#define LCD_WIDTH		(320)
#define LCD_HEIGHT	(240)
#define LCD_BPP			(16)

#define Onechip_SamsungPanel   1 //handy0717
#define Twochip_SamsungPanel   2   //old

#ifdef PANEL_SMALL
#define TFT_MODE_1    (0) //fax Large TFT = TFT_MODE_1
#else
#define TFT_MODE_1    (1) //fax Large TFT = TFT_MODE_1
#endif
// control TFT_240_320 lagre or small



// FrameBuffer address define
//#define DMA_BUFFER_VBASE          0x33D00000
//#define DMA_BUFFER_PBASE          0x33D00000

//#define FRAMEBUF_VBASE        (DMA_BUFFER_VBASE + 0x00100000)
//#define FRAMEBUF_PBASE        (DMA_BUFFER_PBASE + 0x00100000)

//
// Registers : LCD Controller
//
#define TFT240_320	1			// TFT LCD 240*320
#define TFT320_240	2			// TFT LCD 240*320
#define TFT640_480	4			// TFT LCD 640*480

#define LCD_TYPE	TFT320_240	//TFT640_480

// LCD register value...    
#define MODE_STN_1BIT 	    (1)
#define MODE_STN_2BIT  	    (2)
#define MODE_STN_4BIT  	    (4)
#define MODE_CSTN_8BIT 	    (108)
#define MODE_CSTN_12BIT     (112)
#define MODE_TFT_1BIT       (201)
#define MODE_TFT_8BIT       (208)
#define MODE_TFT_16BIT      (216)

#define SCR_XSIZE           (640)	//for virtual screen
#define SCR_YSIZE           (480)
#define SCR_XSIZE_TFT       (480)	//for virtual screen
#define SCR_YSIZE_TFT       (640)

#define LCD_XSIZE_STN       (320)
#define LCD_YSIZE_STN       (240)
#define LCD_XSIZE_CSTN      (320)
#define LCD_YSIZE_CSTN      (240)

#if (LCD_TYPE == TFT240_320)
#define LCD_XSIZE_TFT       (240)
#define LCD_YSIZE_TFT       (320)
#elif (LCD_TYPE == TFT320_240)
#define LCD_XSIZE_TFT       (320)
#define LCD_YSIZE_TFT       (240)
#elif (LCD_TYPE == TFT640_480)
#define LCD_XSIZE_TFT       (640)
#define LCD_YSIZE_TFT       (480)
#endif

#define ARRAY_SIZE_STN_1BIT     (SCR_XSIZE/8*SCR_YSIZE)
#define ARRAY_SIZE_STN_2BIT     (SCR_XSIZE/4*SCR_YSIZE)
#define ARRAY_SIZE_STN_4BIT     (SCR_XSIZE/2*SCR_YSIZE)
#define ARRAY_SIZE_CSTN_8BIT    (SCR_XSIZE/1*SCR_YSIZE)
#define ARRAY_SIZE_CSTN_12BIT   (SCR_XSIZE*2*SCR_YSIZE)
#define ARRAY_SIZE_TFT_8BIT     (SCR_XSIZE/1*SCR_YSIZE)
#define ARRAY_SIZE_TFT_16BIT    (SCR_XSIZE*2*SCR_YSIZE)

#define HOZVAL_STN          (LCD_XSIZE_STN/4-1)
#define HOZVAL_CSTN         (LCD_XSIZE_CSTN*3/8-1)
#define HOZVAL_TFT          (LCD_XSIZE_TFT-1)
#define LINEVAL_STN         (LCD_YSIZE_STN-1)
#define LINEVAL_CSTN        (LCD_YSIZE_CSTN-1)
#define LINEVAL_TFT         (LCD_YSIZE_TFT-1)

#define MVAL                (13)
#define MVAL_USED           (0)

//STN/CSTN timing parameter for LCBHBT161M(NANYA)
#define WLH                 (3)
#define WDLY                (3)
#define LINEBLANK           (1 &0xff)

//TFT timing parameter for V16C6448AB(PRIME VIEW) 

#if (LCD_TYPE == TFT640_480)
#define VBPD                ((35)&0xff)
#define VFPD                ((3)&0xff)
#define VSPW                ((3) &0x3f)

#define HBPD                ((120)&0x7f)
#define HFPD                ((19)&0xff)
#define HSPW                ((18)&0xff)

#define CLKVAL_STN_MONO     (22)
		//69.14hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4 
#define CLKVAL_STN_GRAY     (12)
		//124hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4  
#define CLKVAL_CSTN         (8)
		//135hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=8  
#define CLKVAL_TFT          (1)
#elif (LCD_TYPE == TFT240_320)

#if TFT_MODE_1
//bin01 modify start
#define CLKVAL				((9)&0xff)
#define VBPD                ((3-1)&0xff)	//((1)&0xff)
#define VFPD                ((3-1)&0xff)	//((2)&0xff)
#define VSPW                ((1-1) &0x3f)	//((1) &0x3f)

#define HBPD                ((17-1)&(0x7f))	//((6)&0x7f)
#define HFPD                ((11-1)&(0xff))	//((2)&0xff)
#define HSPW                ((5-1)&(0xff))	//((4)&0xff)
//bin01 modify end
#else 
#define CLKVAL				((9)&0xff)
#define VBPD                ((3)&0xff)	//((1)&0xff) //fax0511
#define VFPD                ((3-1)&0xff)	//((2)&0xff)
#define VSPW                ((1-1) &0x3f)	//((1) &0x3f)

#define HBPD                ((5)&(0x7f))	//((6)&0x7f)//fax0511
#define HFPD                ((11-1)&(0xff))	//((2)&0xff)
#define HSPW                ((5-1)&(0xff))	//((4)&0xff)
#endif
/*
#if TFT_MODE_1
//bin01 modify start
#define CLKVAL				((9)&0xff)
#define VBPD                ((3-1)&0xff)	//((1)&0xff)
#define VFPD                ((3-1)&0xff)	//((2)&0xff)
#define VSPW                ((1-1) &0x3f)	//((1) &0x3f)

#define HBPD                ((17-1)&(0x7f))	//((6)&0x7f)
#define HFPD                ((11-1)&(0xff))	//((2)&0xff)
#define HSPW                ((5-1)&(0xff))	//((4)&0xff)
//bin01 modify end
#else 
#define CLKVAL				((11)&0xff)
#define VBPD                ((4-1)&0xff)	//((1)&0xff) //fax0511
#define VFPD                ((1-1)&0xff)	//((2)&0xff)
#define VSPW                ((1-1) &0x3f)	//((1) &0x3f)

#define HBPD                ((7-1)&(0x7f))	//((6)&0x7f)//fax0511
#define HFPD                ((31-1)&(0xff))	//((2)&0xff)
#define HSPW                ((7-1)&(0xff))	//((4)&0xff)
#endif
*/
#define CLKVAL_STN_MONO     (22)
		//69.14hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4 
#define CLKVAL_STN_GRAY     (12)
		//124hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4  
#define CLKVAL_CSTN         (8)
		//135hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=8  
#define CLKVAL_TFT          (6)
#elif (LCD_TYPE == TFT320_240)
//////handy 0123
#define CLKVAL				((9)&0xff)
#define VBPD                ((7-1)&0xff)	
#define VFPD                ((6-1)&0xff)	
#define VSPW                ((3-1) &0x3f)	

#define HBPD                ((14-1)&(0x7f))	
#define HFPD                ((8-1)&(0xff))	
#define HSPW                ((19-1)&(0xff))	
/////handy0117 end finey
#define CLKVAL_STN_MONO     (22)
		//69.14hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4 
#define CLKVAL_STN_GRAY     (12)
		//124hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4  
#define CLKVAL_CSTN         (8)
		//135hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=8  
#define CLKVAL_TFT          (6)
/*
#define CLKVAL				((9)&0xff)
#define VBPD                ((1-1)&0xff)	//((1)&0xff) //fax0511
#define VFPD                ((1-1)&0xff)	//((2)&0xff)
#define VSPW                ((1-1) &0x3f)	//((1) &0x3f)

#define HBPD                ((3-1)&(0x7f))	//((6)&0x7f)//fax0511
#define HFPD                ((181-1)&(0xff))	//((2)&0xff)
#define HSPW                ((8-1)&(0xff))	//((4)&0xff)

#define CLKVAL_STN_MONO     (22)
		//69.14hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4 
#define CLKVAL_STN_GRAY     (12)
		//124hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4  
#define CLKVAL_CSTN         (8)
		//135hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=8  
#define CLKVAL_TFT          (6)
*/
#endif



	//NOTE: 1)SDRAM should have 32-bit bus width. 
	//      2)HBPD,HFPD,HSPW should be optimized. 
	//44.6hz @75Mhz
	//VSYNC,HSYNC should be inverted
	//HBPD=48VCLK,HFPD=16VCLK,HSPW=96VCLK
	//VBPD=33HSYNC,VFPD=10HSYNC,VSPW=2HSYNC
#define M5D(n)              ((n) & 0x1fffff)

#define SYS_TIMER_PRESCALER	24

#define S2440FCLK	(296352000)
#define PCLKDIV         	6	//jackson_BP_0508xx
#define S2440PCLK       	S2440FCLK/PCLKDIV
#define SYS_TIMER_DIVIDER		2		//	296	//jackson_BP_0508xx



#endif							// __LCD_H__

⌨️ 快捷键说明

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