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