spv518_osd_hw.h
来自「TFT显示的源码,附了使用说明书 要下载的速度了」· C头文件 代码 · 共 195 行
H
195 行
#ifndef _SPV518_OSD_hw_h
#define _SPV518_OSD_hw_h
/***********************************************
* Driver define
*
***********************************************/
#include "types.h"
typedef struct {
UINT16 x;
UINT16 y;
} t_spv518_osd_coordinate;
typedef struct {
UINT16 x_length;
UINT16 y_length;
} t_spv518_osd_dimension;
/*for draw bitmap*/
typedef struct {
t_spv518_osd_coordinate start;
t_spv518_osd_dimension bmp_dimension;
const UINT8 *p_bmp;
UINT8 bits_a_pixel; // only support 1, 2, 4 bits to a pixel
} t_spv518_osd_BITMAPAttribute ;
/*Data*/
enum{
O_SRAM_IDX_L = 0x00,
O_SRAM_IDX_H = 0x01,
O_SRAM_DATA=0x0D,
O_SRAM_CMD=0x0F
};
/*control*/
enum
{
OSD_S_CTRL = 0x00,
OSD_SCL_CTRL = 0x01,
OSD_CLUT_ADR_LOW_BIT = 0x02,
OSD_CLUT_ADR_HIGH_BIT = 0x03,
OSD_START_ADR_LOW_BIT = 0x04,
OSD_START_ADR_HIGH_BIT = 0x05,
X_START_L = 0x06,
X_START_H = 0x07,
Y_START_L = 0x08,
Y_START_H = 0x09,
X_SIZE_L = 0x0A,
X_SIZE_H = 0x0B,
Y_SIZE_L = 0x0C,
Y_SIZE_H = 0x0D,
X_HL_START_L = 0x0E,
X_HL_START_H = 0x0F,
Y_HL_START_L = 0x10,
Y_HL_START_H = 0x11,
X_HL_SIZE_L = 0x12,
X_HL_SIZE_H = 0x13,
Y_HL_SIZE_L = 0x14,
Y_HL_SIZE_H = 0x15
};
#define OSD_CLUT_ADR 0x02
#define OSD_START_ADR 0x04
#define OSD_X_START 0x06
#define OSD_Y_START 0x08
#define OSD_X_SIZE 0x0A
#define OSD_Y_SIZE 0x0C
#define OSD_HL_X_START 0x0E
#define OSD_HL_Y_START 0x10
#define OSD_HL_X_SIZE 0x12
#define OSD_HL_Y_SIZE 0x14
/*for I2C*/
#define SPV518_SLAVE_ADDR 0x42
/*other*/
#define PANEL_W 720
#define PANEL_H 480
#define position1 1
#define position2 2
#define position3 3
#define position1_x ((PANEL_W/3)/3/3) /*PANEL_W(720)=26*/
#define position1_y ((PANEL_H/3)/3/3) /*PANEL_H(480)=17*/
#define position2_x ((PANEL_W/3)/3*2) /*PANEL_W(720)=160*/
#define position2_y ((PANEL_H/3)) /*PANEL_H(480)=106*/
#define position3_x ((PANEL_W/3)/3*2) /*PANEL_W(720)=160*/
#define position3_y ((PANEL_H/3/3)*2) /*PANEL_H(480)=106*/
/*CLUT*/
#define mode_2 2
#define mode_4 4
#define mode_16 16
/*Highlight*/
#define HLOn 1
#define HLOff 0
/*BM buffer*/
#define OSD_BM_BUFFER_BASE 0
#define OSD_BM_2_COLOR_SIZE 8
#define OSD_BM_4_COLOR_SIZE 16
#define OSD_BM_4_HL_COLOR_SIZE 32
#define OSD_BM_16_COLOR_SIZE 64
#define OSD_BM_16_HL_COLOR_SIZE 128
#define OSD_BM_BUFFER_END 1152
#define OSD_CLUT_COLOR_R_MASK 0xff000000
#define OSD_CLUT_COLOR_G_MASK 0x00ff0000
#define OSD_CLUT_COLOR_B_MASK 0x0000ff00
#define OSD_CLUT_COLOR_A_MASK 0x000000ff
/*Control reg*/
#define OSD_CLUT_UPDATE 1
#define OSD_CONFIG_UPDATE 2
#define OSD_CLUT_CONFIG_UPDATE 3
#define OSD_CTL_OSD_EN 0
#define OSD_CTL_HL_EN 1
#define OSD_CTL_COLORFORMAT 2
#define OSD_CTL_CONFIG_UPDATE 5
#define OSD_CTL_CLUT_UPDATE 6
#define OSD_CTL_WRITE 8
#define OSD_SCTL_H_FACTOR 10
#define OSD_SCTL_V_FACTOR 12
#define OSD_SCTL_FACTOR 13
#define OSD_SCTL_FACTOR_ALL 14
#define OSD_CTL_MASK_OSD_EN 0xFE
#define OSD_CTL_MASK_HL_EN 0xFD
#define OSD_CTL_MASK_COLORFORMAT 0xF3
#define OSD_CTL_MASK_CONFIG_UPDATE 0xDF
#define OSD_CTL_MASK_CLUT_UPDATE 0xBF
#define OSD_SCTL_MASK_H_FACTOR 0x03
#define OSD_SCTL_MASK_V_FACTOR 0x0C
#define OSD_SCTL_MASK_FACTOR 0x00
#define OSD_ADDR_MASK_L 0x00FF
#define OSD_ADDR_MASK_H 0x0700
#define OSD_COORDINATE_SIZE_MASK_L 0x00FF
#define OSD_COORDINATE_SIZE_MASK_H 0x0300
#if 0
#ifndef DVDRELEASE
#define SPV518_OSD_DBG 1
#endif
#ifndef SPV518_OSD_DBG
#undef printf
#define printf(f, a...) do {} while (0)
#endif
#endif
/*IOP related*/
extern int WriteToI2c(int iDeviceAddr,int iAddr,BYTE *bData,int len);
/*Set IOP bank addr to fill data or register*/
void SPV518_osd_Bank_addr(UINT8 bank_addr);
/*enable/disable burst write mode*/
void SPV518_osd_burstWriteMode(UINT8 burst_write);
/*fill OSD data SRAM addr*/
void SPV518_osd_dataSRAMAddr(UINT16 data_addr);
/*IOP related*/
/*SPV518 OSD related*/
/*Disable OSD*/
void SPV518_osd_Disa(void);
/*fill CLUT into buffer*/
void SPV518_osd_fillCLUT(UINT8 colorFormat, BYTE colorHighlight);
/*fill BITMAP into buffer*/
int SPV518_osd_drawData(t_spv518_osd_BITMAPAttribute *_draw_attribute,int str_len,int start, const UINT8 colorFormat, const UINT8 colorHighlight);
/*control reg*/
void SPV518_osd_control( UINT16 value, UINT8 regName, UINT8 cfgbit);
void SPV518_set_osdScaling(UINT8 mode, UINT8 scaling);
void SPV518_set_osdHighlight(UINT16 x, UINT16 y, UINT16 sizeX, UINT16 sizeY, UINT8 mode);
/*SPV518 OSD related*/
#endif /*end _SPV518_OSD_hw_h*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?