📄 vdc_tvp5147.c
字号:
/*****************************************************************
Video Chip files
Vdc_5147.c
*****************************************************************/
#include "..\Header\Include.h"
#if(_VIDEO_SUPPORT == _ON)
#if(_VIDEO_TYPE == _VIDEO_5147)
//-------------------------------------------------
// Description : 5147 needs to write VBUS
//-------------------------------------------------
BYTE code tVIDEO_TABLE_VBUS_INIT[][4] =
{
{0x02, 0x00, 0x80, 0x01},
{0x60, 0x00, 0xB0, 0x01},
{0x16, 0x00, 0xA0, 0x16},
{0x60, 0x00, 0xB0, 0x00},
};
//-------------------------------------------------
// Description : 5147 needs to coptimize pal comb
//-------------------------------------------------
BYTE code tVIDEO_TABLE_PAL_COMB_OPTIMIZE[][4] =
{
{0x80, 0x00, 0x4d, 0x08},
{0x80, 0x00, 0x61, 0x10},
};
//-------------------------------------------------
// Description : 5147 needs to coptimize pal comb
//-------------------------------------------------
BYTE code tVIDEO_TABLE_NTSC_COMB_OPTIMIZE[][4] =
{
{0x80, 0x00, 0x3c, 0x40},
{0x80, 0x00, 0x3d, 0x00},
{0x80, 0x00, 0x3e, 0x40},
{0x80, 0x00, 0x3f, 0x00},
{0x80, 0x00, 0x40, 0x44},
{0x80, 0x00, 0x41, 0x23},
{0x80, 0x00, 0x42, 0x38},
{0x80, 0x00, 0x43, 0x10},
{0x80, 0x00, 0x44, 0x33},
{0x80, 0x00, 0x45, 0x23},
{0x80, 0x00, 0x46, 0x02},
{0x80, 0x00, 0x47, 0x00},
{0x80, 0x00, 0x48, 0x20},
{0x80, 0x00, 0x49, 0x00},
{0x80, 0x00, 0x4a, 0x00},
{0x80, 0x00, 0x4b, 0x04},
{0x80, 0x00, 0x4c, 0x04},
{0x80, 0x00, 0x4d, 0x04},
{0x80, 0x00, 0x4e, 0x10},
{0x80, 0x00, 0x4f, 0xf8},
{0x80, 0x00, 0x50, 0x30},
{0x80, 0x00, 0x51, 0x20},
{0x80, 0x00, 0x52, 0x30},
{0x80, 0x00, 0x53, 0x3f},
{0x80, 0x00, 0x54, 0x3f},
{0x80, 0x00, 0x55, 0x3f},
{0x80, 0x00, 0x56, 0x0c},
{0x80, 0x00, 0x57, 0x0c},
{0x80, 0x00, 0x58, 0x80},
{0x80, 0x00, 0x59, 0x80},
{0x80, 0x00, 0x5a, 0x08},
{0x80, 0x00, 0x5b, 0x08},
{0x80, 0x00, 0x5c, 0x08},
{0x80, 0x00, 0x5d, 0x30},
{0x80, 0x00, 0x5e, 0x08},
{0x80, 0x00, 0x5f, 0x08},
{0x80, 0x00, 0x60, 0x00},
{0x80, 0x00, 0x61, 0x00},
{0x80, 0x00, 0x62, 0x00},
{0x80, 0x00, 0x63, 0x00},
{0x80, 0x00, 0x68, 0x03},
{0x80, 0x00, 0x69, 0x00},
{0x80, 0x00, 0x6a, 0x03},
{0x80, 0x00, 0x6b, 0x00},
{0x80, 0x00, 0x6c, 0x30},
{0x80, 0x00, 0x6d, 0x03},
{0x80, 0x00, 0x6e, 0x18},
{0x80, 0x00, 0x6f, 0x0c},
{0x80, 0x00, 0x34, 0x40},
{0x80, 0x00, 0x34, 0x41},
{0x80, 0x00, 0x44, 0x53},
{0x80, 0x00, 0x4a, 0x04},
{0x80, 0x00, 0x5f, 0x04},
{0x80, 0x00, 0x61, 0x10},
/*
WR_IND,VID_DEC,0x01,0x80003C,0x40 //
WR_IND,VID_DEC,0x01,0x80003D,0x00 //
WR_IND,VID_DEC,0x01,0x80003E,0x40 //
WR_IND,VID_DEC,0x01,0x80003F,0x00 //
WR_IND,VID_DEC,0x01,0x800040,0x44 //
WR_IND,VID_DEC,0x01,0x800041,0x23 //
WR_IND,VID_DEC,0x01,0x800042,0x38 //
WR_IND,VID_DEC,0x01,0x800043,0x10 //
WR_IND,VID_DEC,0x01,0x800044,0x33 //
WR_IND,VID_DEC,0x01,0x800045,0x23 //
WR_IND,VID_DEC,0x01,0x800046,0x02 //
WR_IND,VID_DEC,0x01,0x800047,0x00 //
WR_IND,VID_DEC,0x01,0x800048,0x20 //
WR_IND,VID_DEC,0x01,0x800049,0x00 //
WR_IND,VID_DEC,0x01,0x80004A,0x00 //
WR_IND,VID_DEC,0x01,0x80004B,0x04 //
WR_IND,VID_DEC,0x01,0x80004C,0x04 //
WR_IND,VID_DEC,0x01,0x80004D,0x04 //
WR_IND,VID_DEC,0x01,0x80004E,0x10 //
WR_IND,VID_DEC,0x01,0x80004F,0xF8 //
WR_IND,VID_DEC,0x01,0x800050,0x30 //
WR_IND,VID_DEC,0x01,0x800051,0x20 //
WR_IND,VID_DEC,0x01,0x800052,0x30 //
WR_IND,VID_DEC,0x01,0x800053,0x3F //
WR_IND,VID_DEC,0x01,0x800054,0x3F //
WR_IND,VID_DEC,0x01,0x800055,0x3F //
WR_IND,VID_DEC,0x01,0x800056,0x0C //
WR_IND,VID_DEC,0x01,0x800057,0x0C //
WR_IND,VID_DEC,0x01,0x800058,0x80 //
WR_IND,VID_DEC,0x01,0x800059,0x80 //
WR_IND,VID_DEC,0x01,0x80005A,0x08 //
WR_IND,VID_DEC,0x01,0x80005B,0x08 //
WR_IND,VID_DEC,0x01,0x80005C,0x08 //
WR_IND,VID_DEC,0x01,0x80005D,0x30 //
WR_IND,VID_DEC,0x01,0x80005E,0x08 //
WR_IND,VID_DEC,0x01,0x80005F,0x08 //
WR_IND,VID_DEC,0x01,0x800060,0x00 //
WR_IND,VID_DEC,0x01,0x800061,0x00 //
WR_IND,VID_DEC,0x01,0x800062,0x00 //
WR_IND,VID_DEC,0x01,0x800063,0x00 //
WR_IND,VID_DEC,0x01,0x800068,0x03 //
WR_IND,VID_DEC,0x01,0x800069,0x00 //
WR_IND,VID_DEC,0x01,0x80006A,0x03 //
WR_IND,VID_DEC,0x01,0x80006B,0x00 //
WR_IND,VID_DEC,0x01,0x80006C,0x30 //
WR_IND,VID_DEC,0x01,0x80006D,0x30 //
WR_IND,VID_DEC,0x01,0x80006E,0x18 //
WR_IND,VID_DEC,0x01,0x80006F,0x0C //
WR_IND,VID_DEC,0x01,0x800034,0x40 //
WR_IND,VID_DEC,0x01,0x800034,0x41 //
WR_IND,VID_DEC,0x01,0x800044,0x53 //
WR_IND,VID_DEC,0x01,0x80004A,0x04 //
WR_IND,VID_DEC,0x01,0x80005F,0x04 //
WR_IND,VID_DEC,0x01,0x800061,0x10 //
*/
};
BYTE CAdjustRealValue(BYTE srcItem, BYTE srcSliderValue, BYTE srcSliderMax, BYTE srcMax, BYTE srcMid, BYTE srcMin)
{
WORD usTemp;
srcItem = srcItem;
if (srcSliderValue == srcSliderMax)
return (srcMax);
if (srcSliderValue == 0)
return (srcMin);
if (srcItem == _MENU_MU_SHARPNESS) {
if (srcSliderValue<5)
return 0;
else if (srcSliderValue<10)
return 1;
else if (srcSliderValue<15)
return 2;
else
return 3;
}
if (srcSliderValue>srcSliderMax)
srcSliderValue = srcSliderMax/2;
/* This line
usTemp = (srcValue * (srcMax-srcMin)) /100 + srcMin;
*/
if (srcSliderValue > srcSliderMax/2) {
usTemp = srcMax-srcMid;
usTemp *= (srcSliderValue-srcSliderMax/2);
usTemp /= srcSliderMax/2;
usTemp += srcMid;
}
else {
usTemp = srcMid-srcMin;
usTemp *= (srcSliderValue);
usTemp /= srcSliderMax/2;
usTemp += srcMin;
}
return ((BYTE)usTemp);
}
void CAdjustVideoContrast(void)
{
BYTE ucTemp;
#if (_CUSTOM_TYPE == _CUSTOM_HAOZHEN)
ucTemp = CAdjustRealValue(_MENU_MU_CONTRAST, _SLIDER_MAX_CONTRAST-stVideoData.Contrast, _SLIDER_MAX_CONTRAST,_VCONTRAST_MAX, _VCONTRAST_MID, _VCONTRAST_MIN);
#else
ucTemp = CAdjustRealValue(_MENU_MU_CONTRAST, stVideoData.Contrast, _SLIDER_MAX_CONTRAST,_VCONTRAST_MAX, _VCONTRAST_MID, _VCONTRAST_MIN);
#endif
//CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x0A), LENGTH(1), &stVideoData.Contrast);
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x0A), LENGTH(1), &ucTemp);
}
void CAdjustVideoBright(void)
{
#if (_SLIDER_MAX_BRIGHTNESS == 15)
#define DIGITAL_BRI_MIN (0x50+5)
#define DIGITAL_BRI_MAX (0x50+3*15+5)
#define DIGITAL_BRI_STEP ((DIGITAL_BRI_MAX-DIGITAL_BRI_MIN)/_SLIDER_MAX_BRIGHTNESS)
BYTE ucTemp;
/////////////////////////////
stConBriData.Brightness = DIGITAL_BRI_MIN + DIGITAL_BRI_STEP*stVideoData.Brightness;
CAdjustBrightness();
CEepromSaveBriConData();
////////////////////////////
//ucTemp = CAdjustPercentValue(stVideoData.Brightness, _VBRIGHT_MAX, _VBRIGHT_MIN);
//ucTemp = CAdjustRealValue(_MENU_MU_BRIGHT, 6/*stVideoData.Brightness*/, _SLIDER_MAX_BRIGHTNESS,_VBRIGHT_MAX, _VBRIGHT_MID, _VBRIGHT_MIN);
ucTemp = 0x68;
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x09), LENGTH(1), &ucTemp);
#else
/*
#define DIGITAL_BRI_MAX (0x50+100/2)
#define DIGITAL_BRI_MIN 0x50
#define DIGITAL_BRI_STEP 1//((DIGITAL_BRI_MAX-DIGITAL_BRI_MIN)/_SLIDER_MAX_BRIGHTNESS)
BYTE ucTemp;
/////////////////////////////
stConBriData.Brightness = DIGITAL_BRI_MIN + DIGITAL_BRI_STEP*(stVideoData.Brightness/2);
CAdjustBrightness();
CEepromSaveBriConData();
ucTemp = 0x68;
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x09), LENGTH(1), &ucTemp);
//CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x09), LENGTH(1), &stVideoData.Brightness);
*/
#define DIGITAL_BRI_MAX (0x50+100+40)
#define DIGITAL_BRI_MIN (0x50-10)
#define DIGITAL_BRI_STEP 1//((DIGITAL_BRI_MAX-DIGITAL_BRI_MIN)/_SLIDER_MAX_BRIGHTNESS)
BYTE ucTemp;
/////////////////////////////
stConBriData.Brightness = DIGITAL_BRI_MIN + DIGITAL_BRI_STEP*(stVideoData.Brightness);
CAdjustBrightness();
CEepromSaveBriConData();
ucTemp = 0x68;
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x09), LENGTH(1), &ucTemp);
#endif
}
void CAdjustVideoSaturation(void)
{
BYTE ucTemp;
ucTemp = CAdjustRealValue(_MENU_MU_SATURATION, stVideoData.Saturation, _SLIDER_MAX_SATURATION,_VSATURATION_MAX, _VSATURATION_MID, _VSATURATION_MIN);
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x0B), LENGTH(1), &ucTemp);
}
void CAdjustVideoHue(void)
{
/*
BYTE temp;
if (CHECK50HZ())
temp = _VHUE_50_DEFAULT^0x80;
else
temp = stVideoData.Hue^0x80;
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x0C), LENGTH(1), &temp);
*/
BYTE ucTemp;
//ucTemp = CAdjustPercentValue(stVideoData.Hue, _VHUE_MAX, _VHUE_MIN);
if (CHECK50HZ()) {
ucTemp = 0x00;
}
else{
ucTemp = CAdjustRealValue(_MENU_MU_HUE, stVideoData.Hue, _SLIDER_MAX_HUE, _VHUE_MAX, _VHUE_MID, _VHUE_MIN);
ucTemp = ucTemp^0x80;
}
CI2cWrite(_VIDEO_DEVICE, ADDRESS(0x0C), LENGTH(1), &ucTemp);
}
void CAdjustVideoSharpness(void)
{
BYTE temp;
temp = CAdjustRealValue(_MENU_MU_SHARPNESS, stVideoData.VSharpness, _SLIDER_MAX_SHARPNESS,_VSHARPNESS_MAX, _VSHARPNESS_MID, _VSHARPNESS_MIN);
//CVdcI2cRead(_VIDEO_DEVICE, ADDRESS(0x07), LENGTH(1));
temp = /*(pData[0] & 0xF3) |*/ (temp&0x03)<<2;
CI2cRead(_VIDEO_DEVICE, ADDRESS(0x07), LENGTH(1), &temp);
/*
BYTE temp;
temp = (temp & 0xF3) | ((stVideoData.VSharpness&0x03)<<2);
CI2cRead(_VIDEO_DEVICE, ADDRESS(0x07), LENGTH(1), &temp);
*/
}
//--------------------------------------------------
// Description : Video initialize
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CVideoInitial(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -