📄 rtd2533b_eeprom.c
字号:
if(GET_INPUTSOURCE_TYPE() == _SOURCE_VGA) //V307 modify
CEepromRead(_ADC_DATA_ADDRESS, sizeof(StructAdcDataType), &stAdcData.AdcGain[_RED]);
else
CEepromRead(_ADC_DATA_ADDRESS + sizeof(StructAdcDataType), sizeof(StructAdcDataType), &stAdcData.AdcGain[_RED]);
}
//--------------------------------------------------
// Description : Load default ADC data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadAdcDataDefault(void)
{
CEepromWrite(_ADC_DATA_ADDRESS, sizeof(StructAdcDataType), &tEEPROM_ADC_DATA.AdcGain[_RED]);
CEepromWrite(_ADC_DATA_ADDRESS + sizeof(StructAdcDataType), sizeof(StructAdcDataType), &tEEPROM_ADC_DATA.AdcGain[_RED]); //V307 modify
stAdcData = tEEPROM_ADC_DATA;
}
//----------------------------------------------------------------------------------------------------
//--------------------------------------------------
// Description : Save Brightness/Contrast data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveBriConData(void)
{
CEepromWrite(_COLOR_PROC0_ADDRESS + (GET_INPUTSOURCE_TYPE()) * 2, 2, &stConBriData.Brightness);
}
//--------------------------------------------------
// Description : Load Brightness/Contrast data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadBriConData(void)
{
CEepromRead(_COLOR_PROC0_ADDRESS + (GET_INPUTSOURCE_TYPE()) * 2, 2, &stConBriData.Brightness);
}
//--------------------------------------------------
// Description : Load default Brightness/Contrast data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadBriConDataDefault(void)
{
CEepromWrite(_COLOR_PROC0_ADDRESS, 2 * 3, &tEEPROM_COLOR_PROC0_DATA[0].Brightness);
CEepromLoadBriConData();
}
//----------------------------------------------------------------------------------------------------
//--------------------------------------------------
// Description : Save Color Temperature data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveColorTempData(void)
{
CEepromWrite(_COLORTEMP_DATA_ADDRESS + 15 * GET_INPUTSOURCE_TYPE() + 3 * GET_COLOR_TEMP_TYPE(), 3, &stColorTempData.ColorTemp[_RED]);
}
//--------------------------------------------------
// Description : Load Color Temperature data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadColorTempData(void)
{
CEepromRead(_COLORTEMP_DATA_ADDRESS + 15 * GET_INPUTSOURCE_TYPE() + 3 * GET_COLOR_TEMP_TYPE(), 3, &stColorTempData.ColorTemp[_RED]);
}
//--------------------------------------------------
// Description : Load default Color Temperature data
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadColorTempDataDefault(void)
{
CEepromWrite(_COLORTEMP_DATA_ADDRESS, 15 * 3, &tEEPROM_COLORTEMP_DATA[0].ColorTemp9300Red);
CEepromLoadColorTempData();
}
//----------------------------------------------------------------------------------------------------
/*
//--------------------------------------------------
// Description : Load EDID data (MTV512)
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveEDIDData(void)
{
CEepromWrite(_EDID0_ADDRESS, 128, &MCU_DDCRAM_0[0]);
CEepromWrite(_EDID1_ADDRESS, 128, &MCU_DDCRAM_1[0]);
}
*/
//--------------------------------------------------
// Description : Load EDID data (MTV512)
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadEDIDData(void)
{
#if((_MCU_TYPE == _MYSON_MTV512) || (_MCU_TYPE == _REALTEK_RTD2120))
CEepromRead(_EDID0_ADDRESS, 128, &MCU_DDCRAM_0[0]);
CEepromRead(_EDID1_ADDRESS, 128, &MCU_DDCRAM_1[0]);
#endif
}
//--------------------------------------------------
// Description : Load EDID data (MTV512)
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadEDIDDataDefault(void)
{
#if((_MCU_TYPE == _MYSON_MTV512) || (_MCU_TYPE == _REALTEK_RTD2120))
CEepromWrite(_EDID0_ADDRESS, 128, &tEDID_TABLE_VGA[0]);
CEepromWrite(_EDID1_ADDRESS, 128, &tEDID_TABLE_DVI[0]);
CEepromLoadEDIDData();
#endif
}
#endif //End of #if(_MEMORY_LOCATION == _EEPROM)
//--------------------------------------------------------------------------------------------------------------------
//******************* Using Flash to replace external Eeprom *******************//
//--------------------------------------------------------------------------------------------------------------------
#if((_MCU_TYPE == _REALTEK_RTD2120) && (_MEMORY_LOCATION == _FLASH))
//--------------------------------------------------
// Description : Eeprom check at firmware startup
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromStartupCheck(void)
{
if(MCU_FLASH[(_END_PAGE - _START_PAGE + 2) * 1024 - 1] != _VERSION_CODE)
{
CEepromInitialFlash();
CEepromLoadDefault();
}
else
{
if(!CEepromInitialFlashAddr())
{
CEepromInitialFlash();
CEepromLoadDefault();
}
else
{
CEepromCheckLoadDefault();
CEepromLoadSystemData();
CEepromLoadOsdUserData();
CEepromLoadAdcData();
CEepromLoadBriConData();
CEepromLoadColorTempData();
CEepromLoadEDIDData();
}
}
}
//--------------------------------------------------
// Description : Load eeprom default
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadDefault(void)
{
StructModeUserFIFODataType stFIFOModeTemp;
if((GET_MODE_SEARCH_TYPE() == _USER_MODE_TYPE) && (stModeInfo.ModeCurr < 16))
{
CEepromLoadUserFIFOModeData((stModeInfo.ModeCurr / 4), pData);
stFIFOModeTemp.ModeNum = pData[(stModeInfo.ModeCurr % 4) * 4];
}
CEepromStartLoadDefault();
CEepromInitialModeData();
CEepromInitialUserFIFOModeData();
CEepromInitialCenterModeData();
CEepromLoadSystemDataDefault();
CEepromLoadOsdUserDataDefault();
CEepromLoadAdcDataDefault();
CEepromLoadBriConDataDefault();
CEepromLoadColorTempDataDefault();
CEepromLoadEDIDDataDefault();
CEepromFinishLoadDefault();
if((GET_MODE_SEARCH_TYPE() == _USER_MODE_TYPE) && (stModeInfo.ModeCurr < 16))
{
if(stSystemData.UserFIFOMode >= 15)
stSystemData.UserFIFOMode = 0;
else
stSystemData.UserFIFOMode++;
stFIFOModeTemp.IHFreq = stModeInfo.IHFreq;
stFIFOModeTemp.IVFreq = stModeInfo.IVFreq;
CEepromSaveUserFIFOModeData(stFIFOModeTemp);
stModeUserData.FirstAuto = 0;
stModeUserData.HPosition = tINPUTMODE_PRESET_TABLE[stFIFOModeTemp.ModeNum].IHStartPos;
stModeUserData.VPosition = tINPUTMODE_PRESET_TABLE[stFIFOModeTemp.ModeNum].IVStartPos;
stModeUserData.Clock = tINPUTMODE_PRESET_TABLE[stFIFOModeTemp.ModeNum].IHTotal;
stModeUserData.Phase = 0;
CEepromSaveModeData(stSystemData.UserFIFOMode);
stModeInfo.ModeCurr = stSystemData.UserFIFOMode;
}
else if((GET_MODE_SEARCH_TYPE() == _PRESET_MODE_TYPE) && (stModeInfo.ModeCurr < _MAX_PRESET_MODE))
{
CEepromLoadModeData(stModeInfo.ModeCurr);
}
}
//--------------------------------------------------
// Description : Save mode setting data, such as FirstAuto,
// HPosition, VPosition, Clock and Phase.
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveModeData(BYTE ucMode)
{
pFlashTemp[0] = (BYTE)(stModeUserData.FirstAuto << 7) | ucMode;
pFlashTemp[1] = (BYTE)(stModeUserData.HPosition >> 8);
pFlashTemp[2] = (BYTE)stModeUserData.HPosition;
pFlashTemp[3] = (BYTE)(stModeUserData.VPosition >> 8);
pFlashTemp[4] = (BYTE)stModeUserData.VPosition;
pFlashTemp[5] = (BYTE)(stModeUserData.Clock >> 8);
pFlashTemp[6] = (BYTE)stModeUserData.Clock;
pFlashTemp[7] = stModeUserData.Phase;
if(GET_MODE_SEARCH_TYPE() == _PRESET_MODE_TYPE)
CEepromSaveFlashData(_PRESET, pFlashTemp);
else if(GET_MODE_SEARCH_TYPE() == _USER_MODE_TYPE)
CEepromSaveFlashData(_USER, pFlashTemp);
}
//--------------------------------------------------
// Description : Load mode setting data, such as FirstAuto,
// HPosition, VPosition, Clock and Phase.
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadModeData(BYTE ucMode)
{
BYTE page;
if(GET_MODE_SEARCH_TYPE() == _PRESET_MODE_TYPE)
page = _PRESET;
else if(GET_MODE_SEARCH_TYPE() == _USER_MODE_TYPE)
page = _USER;
if(CEepromLoadFlashData(page,ucMode,pFlashTemp))
{
stModeUserData.FirstAuto = (pFlashTemp[0] >> 7) & _BIT0;
stModeUserData.HPosition = (pFlashTemp[1] << 8) | pFlashTemp[2];
stModeUserData.VPosition = (pFlashTemp[3] << 8) | pFlashTemp[4];;
stModeUserData.Clock = (pFlashTemp[5] << 8) | pFlashTemp[6];;
stModeUserData.Phase = pFlashTemp[7];
}
else
{
stModeUserData.FirstAuto = 0;
stModeUserData.HPosition = tINPUTMODE_PRESET_TABLE[ucMode].IHStartPos;
stModeUserData.VPosition = tINPUTMODE_PRESET_TABLE[ucMode].IVStartPos;
stModeUserData.Clock = tINPUTMODE_PRESET_TABLE[ucMode].IHTotal;
stModeUserData.Phase = 0;
}
}
//--------------------------------------------------
// Description : Initial mode setting data with defaults
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromInitialModeData(void)
{
BYTE modecnt, i;
for(modecnt=0;modecnt<_MAX_PRESET_MODE;modecnt++)
{
if(CEepromLoadFlashData(_PRESET,modecnt,pFlashTemp))
{
pFlashTemp[0] = modecnt;
pFlashTemp[1] = (BYTE)(tINPUTMODE_PRESET_TABLE[modecnt].IHStartPos >> 8);
pFlashTemp[2] = (BYTE)tINPUTMODE_PRESET_TABLE[modecnt].IHStartPos;
pFlashTemp[3] = (BYTE)(tINPUTMODE_PRESET_TABLE[modecnt].IVStartPos>> 8);
pFlashTemp[4] = (BYTE)tINPUTMODE_PRESET_TABLE[modecnt].IVStartPos;
pFlashTemp[5] = (BYTE)(tINPUTMODE_PRESET_TABLE[modecnt].IHTotal >> 8);
pFlashTemp[6] = (BYTE)tINPUTMODE_PRESET_TABLE[modecnt].IHTotal;
pFlashTemp[7] = 0;
CEepromSaveFlashData(_PRESET, pFlashTemp);
}
}
for(modecnt=0;modecnt<16;modecnt++)
{
if(CEepromLoadFlashData(_USER,modecnt,pFlashTemp))
{
pFlashTemp[0] = modecnt;
for(i=1;i<8;i++)
pFlashTemp[i] = 0xff;
CEepromSaveFlashData(_USER, pFlashTemp);
}
}
}
//--------------------------------------------------
// Description : Save user FIFO mode data, such as ModeNum,
// IHFreq, IVFreq.
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveUserFIFOModeData(StructModeUserFIFODataType stUserFIFOMode)
{
stUserFIFOMode.IHFreq = ((stUserFIFOMode.IVFreq & 0x0f00) << 4) | (stUserFIFOMode.IHFreq & 0x0fff);
pFlashTemp[0] = stSystemData.UserFIFOMode;
pFlashTemp[1] = stUserFIFOMode.ModeNum;
pFlashTemp[2] = (BYTE)(stUserFIFOMode.IHFreq >> 8);
pFlashTemp[3] = (BYTE)stUserFIFOMode.IHFreq;
pFlashTemp[4] = (BYTE)stUserFIFOMode.IVFreq;
pFlashTemp[5] = 0xff;
pFlashTemp[6] = 0xff;
pFlashTemp[7] = 0xff;
CEepromSaveFlashData(_FIFO, pFlashTemp);
}
//--------------------------------------------------
// Description : Load 4 sets of user FIFO mode data.
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadUserFIFOModeData(BYTE ucNum, BYTE *pArray)
{
BYTE cnt, i;
for(cnt=ucNum*4;cnt<ucNum*4+4;cnt++)
{
if(CEepromLoadFlashData(_FIFO,cnt,pFlashTemp))
{
for(i=0;i<4;i++)
pArray[(cnt & 0x03) * 4 + i] = pFlashTemp[i + 1];
}
else
{
for(i=0;i<4;i++)
pArray[(cnt & 0x03) * 4 + i] = 0xff;
}
}
}
//--------------------------------------------------
// Description : Initial user FIFO mode data with defaults
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CEepromInitialUserFIFOModeData(void)
{
BYTE cnt, i;
for(cnt=0;cnt<16;cnt++)
{
if(CEepromLoadFlashData(_FIFO,cnt,pFlashTemp))
{
pFlashTemp[0] = cnt;
for(i=1;i<8;i++)
pFlashTemp[i] = 0xff;
CEepromSaveFlashData(_FIFO, pFlashTemp);
}
}
}
//--------------------------------------------------
// Description :
//
// Input Value :
// Output Value : None
//--------------------------------------------------
void CEepromSaveCenterModeData(BYTE ucMode)
{
BYTE page;
if(GET_MODE_SEARCH_TYPE() == _PRESET_MODE_TYPE)
page = _AUTO_PRESET;
else if(GET_MODE_SEARCH_TYPE() == _USER_MODE_TYPE)
page = _AUTO_USER;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -