📄 display.h
字号:
/*********************************************************************
;* Project Name : s3c2450x
;*
;* Copyright 2006 by Samsung Electronics, Inc.
;* All rights reserved.
;*
;* Project Description :
;* This software is only for verifying functions of the s3c2450x
;* Anybody can use this code without our permission.
;**********************************************************************/
#ifndef __DISPLAY_H__
#define __DISPLAY_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "bsp_cfg.h"
#define LCD_DELAY_1MS 180000 //180000 //on the basis of 540MHz
#if (LCD_MODULE_TYPE == LCD_MODULE_LTS222)
//* SPECIFIC FOR LTS222 MODULE
#define LTS222_VBPD (9)
#define LTS222_VFPD (10)
#define LTS222_VSPW (3)
#define LTS222_HBPD (1)
#define LTS222_HFPD (6)
#define LTS222_HSPW (3)
#define LTS222_HOZVAL (240)
#define LTS222_LINEVAL (320)
#define LTS222_FRAME_RATE 65
#elif (LCD_MODULE_TYPE == LCD_MODULE_LTV350)
//* SPECIFIC FOR LTV350 MODULE
#define LTV350_VBPD (5)
#define LTV350_VFPD (3)
#define LTV350_VSPW (4)
#define LTV350_HBPD (5)
#define LTV350_HFPD (3)
#define LTV350_HSPW (10)
#define LTV350_HOZVAL (320)
#define LTV350_LINEVAL (240)
#define LTV350_FRAME_RATE 65
#define LCD_WIDTH 320
#define LCD_HEIGHT 240
#elif (LCD_MODULE_TYPE == LCD_MODULE_LTE480WV)
//* SPECIFIC FOR LTE480(WVGA) MODULE FOR PARALLEL RGB INTERFACE
#define LTE480_VBPD (7) // 8-1
#define LTE480_VFPD (5) // 5-1
#define LTE480_VSPW (1) // 1-1
#define LTE480_HBPD (13)// 13-1
#define LTE480_HFPD (8) // 8-1
#define LTE480_HSPW (3) // 3-1
#define LTE480_HOZVAL (800)// Horizontal pixel 800
#define LTE480_LINEVAL (480)// Vertical pixel 480
#define LTE480_FRAME_RATE (30)
#define LCD_WIDTH 800
#define LCD_HEIGHT 480
#endif
//* VIDCON0
#define VIDCON0_S_RGB_IF (0<<22)
#define VIDCON0_S_RGB_PAR (0<<13)
#define VIDCON0_S_BGR_PAR (1<<13)
#define VIDCON0_S_CLKVAL_F_AlWAYS_UPDATE (0<<12)
#define VIDCON0_S_CLKVAL_F_SOF_UPDATE (1<<12)
#define VIDCON0_S_VCLK_GATING_ON (0<<5)
#define VIDCON0_S_VCLK_GATING_OFF (1<<5)
#define VIDCON0_S_CLKDIR_DIRECT (0<<4)
#define VIDCON0_S_CLKDIR_DIVIDED (1<<4)
#define VIDCON0_S_CLKSEL_HCLK (0<<2)
#define VIDCON0_S_CLKSEL_UPLL (1<<2)
#define VIDCON0_S_ENVID_OFF (0<<1)
#define VIDCON0_S_EVVID_ON (1<<1)
#define VIDCON0_S_ENVID_F_OFF (0<<0)
#define VIDCON0_S_ENVID_F_ON (1<<0)
//bit shift
#define VIDCON0_CLKVAL_F_SHIFT (6)
//* VIDCON1
#define VIDCON1_S_VCLK_FALL_EDGE_FETCH (0<<7)
#define VIDCON1_S_VCLK_RISE_EDGE_FETCH (1<<7)
#define VIDCON1_S_HSYNC_INVERTED (1<<6)
#define VIDCON1_S_VSYNC_INVERTED (1<<5)
#define VIDCON1_S_VDEN_INVERTED (1<<4)
//* VIDTCON0,1
//bit shift
#define VIDTCON0_BPD_S (16)
#define VIDTCON0_FPD_S (8)
#define VIDTCON0_SPW_S (0)
//* VIDTCON2
//bit shift
#define VIDTCON2_LINEVAL_S (11)
#define VIDTCON2_HOZVAL_S (0)
/*
//* WINCON0
//shift
#define WINCON0_INRGB_S (13)
*/
//* WINCON1to4
#define WINCONx_BIT_SWAP_ON (1<<2) //shift on basis of half-word swap
#define WINCONx_BYTE_SWAP_ON (1<<1) //shift on basis of half-word swap
#define WINCONx_HALFW_SWAP_ON (1<<0) //shift on basis of half-word swap
#define WINCONx_4WORD_BURST (2)
#define WINCONx_8WORD_BURST (1)
#define WINCONx_16WORD_BURST (0)
#define WINCONx_PLANE_BLENDING (0)
#define WINCONx_PIXEL_BLENDING (1)
#define WINCONx_1BPP_PALLET (0)
#define WINCONx_2BPP_PALLET (1)
#define WINCONx_4BPP_PALLET (2)
#define WINCONx_8BPP_PALLET (3)
#define WINCONx_8BPP_NO_PALLET (4)
#define WINCONx_16BPP_565 (5)
#define WINCONx_16BPP_A555 (6)
#define WINCONx_16BPP_1555 (7)
#define WINCONx_18BPP_666 (8)
#define WINCONx_18BPP_A665 (9)
#define WINCONx_19BPP_A666 (10)
#define WINCONx_24BPP_888 (11)
#define WINCONx_24BPP_A887 (12)
#define WINCONx_25BPP_A888 (13)
#define WINCONx_ALPHA_MODE_0 (0)
#define WINCONx_ALPHA_MODE_1 (1)
//bit shift
#define WINCON_SWAP_S (16)
#define WINCON_BURSTLEN_S (9)
#define WINCON_BLENDING_S (6)
#define WINCON_BPP_S (2)
#define WINCON_ALPHA_S (1)
//* VIDWxADD2
//bit shift
#define VIDWxADD2_OFFSET_SIZE_S (13)
#define VIDWxADD2_PAGE_WIDTH_S (0)
//* VIDOSDxA,B,C
//bit shift
#define VIDOSDxAB_HORIZON_X_S (11)
#define VIDOSDxAB_VERTICAL_Y_S (0)
#define VIDOSDxC_ALPHA0_S (12)
/*
#define LCD_WIN_0 0
#define LCD_WIN_1 1
#define LCD_WIN_2 2
#define LCD_WIN_3 3
#define LCD_WIN_4 4
#define LCD_WIN_ALL 5
#define LCD_OFF 0
#define LCD_ON 1
// set spi for lcd
// 1. set jumper like as 1-2 in J15 at SMDK board
// 2. you can use the SPI1 to control LCD sfr register
// nSS1 ---> SPI_LCDnSS ---> GPL 14
// SPIMOSI1 ---> SPI_LCDMOSI ---> GPL 11
// SPICLK1 ---> SPI_LCDCLK ---> GPL 10
*/
#define LCD_DEN (1<<14)
#define LCD_DSERI (1<<11)
#define LCD_DCLK (1<<10)
#define LCD_DEN_BIT 14
#define LCD_DSERI_BIT 11
#define LCD_DCLK_BIT 10
#define LCD_nRESET 1
//#define LCD_RESET (0)
//#if 1 //org.
#define LCD_DEN_Lo (s2450IOP->GPLDAT &= ~LCD_DEN)
#define LCD_DEN_Hi (s2450IOP->GPLDAT |= LCD_DEN)
#define LCD_DCLK_Lo (s2450IOP->GPLDAT &= ~LCD_DCLK)
#define LCD_DCLK_Hi (s2450IOP->GPLDAT |= LCD_DCLK)
#define LCD_DSERI_Lo (s2450IOP->GPLDAT &= ~LCD_DSERI)
#define LCD_DSERI_Hi (s2450IOP->GPLDAT |= LCD_DSERI)
/*
#else //specific for mDirac3
#define LCD_DEN_Lo \
{ \
extern uint32 var_GPFDAT; \
var_GPFDAT &= ~LCD_DEN; \
rGPFDAT = var_GPFDAT; \
}
#define LCD_DEN_Hi \
{ \
extern uint32 var_GPFDAT; \
var_GPFDAT |= LCD_DEN; \
rGPFDAT = var_GPFDAT; \
}
#define LCD_DCLK_Lo \
{ \
extern uint32 var_GPFDAT; \
var_GPFDAT &= ~LCD_DCLK; \
rGPFDAT = var_GPFDAT; \
}
#define LCD_DCLK_Hi \
{ \
extern uint32 var_GPFDAT; \
var_GPFDAT |= LCD_DCLK; \
rGPFDAT = var_GPFDAT; \
}
#define LCD_DSERI_Lo \
{ \
extern uint32 var_GPFDAT; \
var_GPFDAT &= ~LCD_DSERI; \
rGPFDAT = var_GPFDAT; \
}
#define LCD_DSERI_Hi \
{ \
extern uint32 var_GPFDAT; \
var_GPFDAT |= LCD_DSERI; \
rGPFDAT = var_GPFDAT; \
}
#endif
#define LCD_RESET_Lo (0)
#define LCD_RESET_Hi (1)
*/
#if (BSP_TYPE == BSP_SMDK2443)
#if (LCD_MODULE_TYPE == LCD_MODULE_LTE480WV)
#define LCD_SCR_XSIZE (800) // virtual screen
#define LCD_SCR_YSIZE (480)
#define LCD_SCR_XSIZE_TFT (800) // virtual screen
#define LCD_SCR_YSIZE_TFT (480)
#elif (LCD_MODULE_TYPE == LCD_MODULE_LTV350)
#define LCD_SCR_XSIZE (640) // virtual screen
#define LCD_SCR_YSIZE (480)
#define LCD_SCR_XSIZE_TFT (480) // virtual screen
#define LCD_SCR_YSIZE_TFT (640)
#endif
//------------------------------------------------------------------------------
// Define: LCD_*SIZE_XXX
//
// Defines physical screen sizes and orientation.
//
#if (LCD_MODULE_TYPE == LCD_MODULE_LTE480WV)
#define LCD_XSIZE_TFT (800)
#define LCD_YSIZE_TFT (480)
#define LCD_XSIZE_STN (800)
#define LCD_YSIZE_STN (480)
#define LCD_XSIZE_CSTN (800)
#define LCD_YSIZE_CSTN (480)
#elif (LCD_MODULE_TYPE == LCD_MODULE_LTV350)
#define LCD_XSIZE_TFT (320)
#define LCD_YSIZE_TFT (240)
#define LCD_XSIZE_STN (320)
#define LCD_YSIZE_STN (240)
#define LCD_XSIZE_CSTN (320)
#define LCD_YSIZE_CSTN (240)
#endif
//------------------------------------------------------------------------------
// Define: LCD_ARRAY_SIZE_XXX
//
// Array Sizes based on screen configuration.
//
#define LCD_ARRAY_SIZE_STN_1BIT (LCD_SCR_XSIZE/8*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_STN_2BIT (LCD_SCR_XSIZE/4*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_STN_4BIT (LCD_SCR_XSIZE/2*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_CSTN_8BIT (LCD_SCR_XSIZE/1*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_CSTN_12BIT (LCD_SCR_XSIZE*2*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_TFT_8BIT (LCD_SCR_XSIZE/1*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_TFT_16BIT (LCD_SCR_XSIZE*2*LCD_SCR_YSIZE)
//------------------------------------------------------------------------------
// Define: LCD_HOZVAL_XXX
//
// Desc...
//
#define LCD_HOZVAL_STN (LCD_XSIZE_STN/4-1)
#define LCD_HOZVAL_CSTN (LCD_XSIZE_CSTN*3/8-1)
#define LCD_HOZVAL_TFT (LCD_XSIZE_TFT-1)
//------------------------------------------------------------------------------
// Define: LCD_LINEVAL_XXX
//
// Desc...
//
#define LCD_LINEVAL_STN (LCD_YSIZE_STN-1)
#define LCD_LINEVAL_CSTN (LCD_YSIZE_CSTN-1)
#define LCD_LINEVAL_TFT (LCD_YSIZE_TFT-1)
#elif (BSP_TYPE == BSP_SMDK2450)
#if (LCD_MODULE_TYPE == LCD_MODULE_LTE480WV)
#define LCD_SCR_XSIZE (800) // virtual screen
#define LCD_SCR_YSIZE (480)
#define LCD_SCR_XSIZE_TFT (800) // virtual screen
#define LCD_SCR_YSIZE_TFT (480)
#elif (LCD_MODULE_TYPE == LCD_MODULE_LTV350)
#define LCD_SCR_XSIZE (640) // virtual screen
#define LCD_SCR_YSIZE (480)
#define LCD_SCR_XSIZE_TFT (480) // virtual screen
#define LCD_SCR_YSIZE_TFT (640)
#endif
//------------------------------------------------------------------------------
// Define: LCD_*SIZE_XXX
//
// Defines physical screen sizes and orientation.
//
#if (LCD_MODULE_TYPE == LCD_MODULE_LTE480WV)
#define LCD_XSIZE_TFT (800)
#define LCD_YSIZE_TFT (480)
#define LCD_XSIZE_STN (800)
#define LCD_YSIZE_STN (480)
#define LCD_XSIZE_CSTN (800)
#define LCD_YSIZE_CSTN (480)
#elif (LCD_MODULE_TYPE == LCD_MODULE_LTV350)
#define LCD_XSIZE_TFT (320)
#define LCD_YSIZE_TFT (240)
#define LCD_XSIZE_STN (320)
#define LCD_YSIZE_STN (240)
#define LCD_XSIZE_CSTN (320)
#define LCD_YSIZE_CSTN (240)
#endif
//------------------------------------------------------------------------------
// Define: LCD_ARRAY_SIZE_XXX
//
// Array Sizes based on screen configuration.
//
#define LCD_ARRAY_SIZE_STN_1BIT (LCD_SCR_XSIZE/8*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_STN_2BIT (LCD_SCR_XSIZE/4*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_STN_4BIT (LCD_SCR_XSIZE/2*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_CSTN_8BIT (LCD_SCR_XSIZE/1*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_CSTN_12BIT (LCD_SCR_XSIZE*2*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_TFT_8BIT (LCD_SCR_XSIZE/1*LCD_SCR_YSIZE)
#define LCD_ARRAY_SIZE_TFT_16BIT (LCD_SCR_XSIZE*2*LCD_SCR_YSIZE)
//------------------------------------------------------------------------------
// Define: LCD_HOZVAL_XXX
//
// Desc...
//
#define LCD_HOZVAL_STN (LCD_XSIZE_STN/4-1)
#define LCD_HOZVAL_CSTN (LCD_XSIZE_CSTN*3/8-1)
#define LCD_HOZVAL_TFT (LCD_XSIZE_TFT-1)
//------------------------------------------------------------------------------
// Define: LCD_LINEVAL_XXX
//
// Desc...
//
#define LCD_LINEVAL_STN (LCD_YSIZE_STN-1)
#define LCD_LINEVAL_CSTN (LCD_YSIZE_CSTN-1)
#define LCD_LINEVAL_TFT (LCD_YSIZE_TFT-1)
#endif
#endif //#ifndef __DISPLAY_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -