⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtd2533b_eeprom.c

📁 Realtek LCD monitor chip RTD25xx source code
💻 C
📖 第 1 页 / 共 4 页
字号:

    pFlashTemp[0] = ucMode;
    pFlashTemp[1] = (BYTE)(stModeUserCenterData.CenterHPos >> 8);
    pFlashTemp[2] = (BYTE)stModeUserCenterData.CenterHPos;
    pFlashTemp[3] = (BYTE)(stModeUserCenterData.CenterVPos >> 8);
    pFlashTemp[4] = (BYTE)stModeUserCenterData.CenterVPos;
    pFlashTemp[5] = (BYTE)(stModeUserCenterData.CenterClock >> 8);
    pFlashTemp[6] = (BYTE)stModeUserCenterData.CenterClock;
	pFlashTemp[7] = 0xff;

    CEepromSaveFlashData(page, pFlashTemp);
}

//--------------------------------------------------
// Description  : 
//                
// Input Value  : 
// Output Value : None
//--------------------------------------------------
void CEepromLoadCenterModeData(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;

    if(CEepromLoadFlashData(page,ucMode,pFlashTemp))
    {
        stModeUserCenterData.CenterHPos = (pFlashTemp[1] << 8) | pFlashTemp[2];
        stModeUserCenterData.CenterVPos = (pFlashTemp[3] << 8) | pFlashTemp[4];;
        stModeUserCenterData.CenterClock = (pFlashTemp[5] << 8) | pFlashTemp[6];;                
    }
    else
    {
        stModeUserCenterData.CenterHPos    = tINPUTMODE_PRESET_TABLE[ucMode].IHStartPos;
        stModeUserCenterData.CenterVPos    = tINPUTMODE_PRESET_TABLE[ucMode].IVStartPos;
        stModeUserCenterData.CenterClock   = tINPUTMODE_PRESET_TABLE[ucMode].IHTotal;
    }
}

//--------------------------------------------------
// Description  : Initial mode setting data with defaults
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromInitialCenterModeData(void)
{
    BYTE modecnt, i;

    for(modecnt=0;modecnt<_MAX_PRESET_MODE;modecnt++)
    {
        if(CEepromLoadFlashData(_AUTO_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] = 0xff;
        
           CEepromSaveFlashData(_AUTO_PRESET, pFlashTemp);
        }
    }

    for(modecnt=0;modecnt<16;modecnt++)
    {            
        if(CEepromLoadFlashData(_AUTO_USER,modecnt,pFlashTemp))
        {
            pFlashTemp[0] = modecnt;       

            for(i=1;i<8;i++)
                pFlashTemp[i] = 0xff;
 
            CEepromSaveFlashData(_AUTO_USER, pFlashTemp);
        }
    }
}


//----------------------------------------------------------------------------------------------------


//--------------------------------------------------
// Description  : Save system data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveSystemData(void)
{
    pFlashTemp[0] = 1;
    pFlashTemp[1] = stSystemData.MonitorFlag;
    pFlashTemp[2] = stSystemData.InputSource;
    pFlashTemp[3] = stSystemData.BackLight;
    pFlashTemp[4] = stSystemData.ColorTemp;
    pFlashTemp[5] = stSystemData.Sharpness;
    pFlashTemp[6] = stSystemData.UserFIFOMode;
	pFlashTemp[7] = 0xff;

    CEepromSaveFlashData(_GLOBAL, pFlashTemp);
}

//--------------------------------------------------
// Description  : Load system data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadSystemData(void)
{
    if(CEepromLoadFlashData(_GLOBAL,1,pFlashTemp))
    {
        stSystemData.MonitorFlag  = pFlashTemp[1];
        stSystemData.InputSource  = pFlashTemp[2];
        stSystemData.BackLight    = pFlashTemp[3];
        stSystemData.ColorTemp    = pFlashTemp[4];
        stSystemData.Sharpness    = pFlashTemp[5];
        stSystemData.UserFIFOMode = pFlashTemp[6];                
    }
    else
    {
        stSystemData = tEEPROM_SYSTEM_DATA;
    }
}

//--------------------------------------------------
// Description  : Load default system data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadSystemDataDefault(void)
{
    stSystemData = tEEPROM_SYSTEM_DATA;
    CEepromSaveSystemData();
}


//----------------------------------------------------------------------------------------------------


//--------------------------------------------------
// Description  : Save OSD data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveOsdUserData(void)
{
    BYTE i, cnt=0;

    if(sizeof(StructOsdUserDataType) > 6)
    {
        for(cnt=0;cnt<sizeof(StructOsdUserDataType)/7;cnt++)
        {
            pFlashTemp[0] = 21 + cnt;
    
            for(i=1;i<8;i++)
                pFlashTemp[i] = *(&stOsdUserData.OsdSettingFlag + cnt * 7 + i - 1);

            CEepromSaveFlashData(_GLOBAL, pFlashTemp);
        }
    }

    if(sizeof(StructOsdUserDataType)%7 != 0)
    {
        pFlashTemp[0] = 21 + cnt; 

        for(i=1;i<sizeof(StructOsdUserDataType)%7;i++)
            pFlashTemp[i] = *(&stOsdUserData.OsdSettingFlag + cnt * 7 + i - 1);

        for(i=sizeof(StructOsdUserDataType)%7;i<8;i++)
            pFlashTemp[i] = 0xff;

        CEepromSaveFlashData(_GLOBAL, pFlashTemp);
    }
}

//--------------------------------------------------
// Description  : Load OSD data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadOsdUserData(void)
{
    BYTE cnt, i;

    for(cnt=0;cnt<((sizeof(StructOsdUserDataType)%7)? sizeof(StructOsdUserDataType)/7 + 1 : sizeof(StructOsdUserDataType)/7);cnt++)
    {
        if(CEepromLoadFlashData(_GLOBAL,21 + cnt,pFlashTemp))
        {
            for(i=1;i<((cnt == sizeof(StructOsdUserDataType)/7) ? sizeof(StructOsdUserDataType)%7 : 8);i++)
                *(&stOsdUserData.OsdSettingFlag + cnt * 7 + i - 1) = pFlashTemp[i];
        }
        else 
        {   
            stOsdUserData = tEEPROM_OSDUSER_DATA;
            break;
        }
    }
}

//--------------------------------------------------
// Description  : Load default OSD data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadOsdUserDataDefault(void)
{
    stOsdUserData = tEEPROM_OSDUSER_DATA;
    CEepromSaveOsdUserData();
}


//----------------------------------------------------------------------------------------------------


//--------------------------------------------------
// Description  : Save ADC data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveAdcData(void)
{
    pFlashTemp[0] = 2;
    pFlashTemp[1] = stAdcData.AdcGain[_RED];
    pFlashTemp[2] = stAdcData.AdcGain[_GREEN];
    pFlashTemp[3] = stAdcData.AdcGain[_BLUE];
    pFlashTemp[4] = stAdcData.AdcOffset[_RED];
    pFlashTemp[5] = stAdcData.AdcOffset[_GREEN];
    pFlashTemp[6] = stAdcData.AdcOffset[_BLUE];
	pFlashTemp[7] = 0xff;

    CEepromSaveFlashData(_GLOBAL, pFlashTemp);
}

//--------------------------------------------------
// Description  : Load ADC data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadAdcData(void)
{
    if(CEepromLoadFlashData(_GLOBAL,2,pFlashTemp))
    {
        stAdcData.AdcGain[_RED]     = pFlashTemp[1];
        stAdcData.AdcGain[_GREEN]   = pFlashTemp[2];
        stAdcData.AdcGain[_BLUE]    = pFlashTemp[3];
        stAdcData.AdcOffset[_RED]   = pFlashTemp[4];
        stAdcData.AdcOffset[_GREEN] = pFlashTemp[5];
        stAdcData.AdcOffset[_BLUE]  = pFlashTemp[6];               
    }
    else
    {
        stAdcData = tEEPROM_ADC_DATA;
    }
}

//--------------------------------------------------
// Description  : Load default ADC data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadAdcDataDefault(void)
{
    stAdcData = tEEPROM_ADC_DATA;
    CEepromSaveAdcData();
}


//----------------------------------------------------------------------------------------------------


//--------------------------------------------------
// Description  : Save Brightness/Contrast data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveBriConData(void)
{
    pFlashTemp[0] = 3 + GET_INPUTSOURCE_TYPE();
    pFlashTemp[1] = stConBriData.Brightness;
    pFlashTemp[2] = stConBriData.Contrast;
    pFlashTemp[3] = 0xff;
    pFlashTemp[4] = 0xff;
    pFlashTemp[5] = 0xff;
    pFlashTemp[6] = 0xff;
	pFlashTemp[7] = 0xff;

    CEepromSaveFlashData(_GLOBAL, pFlashTemp);
}

//--------------------------------------------------
// Description  : Load Brightness/Contrast data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadBriConData(void)
{
    if(CEepromLoadFlashData(_GLOBAL,3 + GET_INPUTSOURCE_TYPE(),pFlashTemp))
    {
        stConBriData.Brightness = pFlashTemp[1];
        stConBriData.Contrast   = pFlashTemp[2];             
    }
    else
    {
        stConBriData.Brightness = tEEPROM_COLOR_PROC0_DATA[GET_INPUTSOURCE_TYPE() * 2].Brightness;
        stConBriData.Contrast   = tEEPROM_COLOR_PROC0_DATA[GET_INPUTSOURCE_TYPE() * 2].Contrast; 
    }
}

//--------------------------------------------------
// Description  : Load default Brightness/Contrast data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadBriConDataDefault(void)
{
    stConBriData.Brightness = tEEPROM_COLOR_PROC0_DATA[GET_INPUTSOURCE_TYPE() * 2].Brightness;
    stConBriData.Contrast   = tEEPROM_COLOR_PROC0_DATA[GET_INPUTSOURCE_TYPE() * 2].Contrast; 
    CEepromSaveBriConData();
}


//----------------------------------------------------------------------------------------------------


//--------------------------------------------------
// Description  : Save Color Temperature data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromSaveColorTempData(void)
{
    pFlashTemp[0] = 6 + GET_COLOR_TEMP_TYPE() + GET_INPUTSOURCE_TYPE() * 5;
    pFlashTemp[1] = stColorTempData.ColorTemp[_RED];
    pFlashTemp[2] = stColorTempData.ColorTemp[_GREEN];
    pFlashTemp[3] = stColorTempData.ColorTemp[_BLUE];
    pFlashTemp[4] = 0xff;
    pFlashTemp[5] = 0xff;
    pFlashTemp[6] = 0xff;
    pFlashTemp[7] = 0xff;

    CEepromSaveFlashData(_GLOBAL, pFlashTemp);
}

//--------------------------------------------------
// Description  : Load Color Temperature data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadColorTempData(void)
{
    if(CEepromLoadFlashData(_GLOBAL,6 + GET_COLOR_TEMP_TYPE() + GET_INPUTSOURCE_TYPE() * 5,pFlashTemp))
    {
        stColorTempData.ColorTemp[_RED]   = pFlashTemp[1];
        stColorTempData.ColorTemp[_GREEN] = pFlashTemp[2];
        stColorTempData.ColorTemp[_BLUE]  = pFlashTemp[3];              
    }
    else
    {
        stColorTempData.ColorTemp[_RED]   = *(&tEEPROM_COLORTEMP_DATA[GET_INPUTSOURCE_TYPE()].ColorTemp9300Red + stSystemData.ColorTemp * 3);
        stColorTempData.ColorTemp[_GREEN] = *(&tEEPROM_COLORTEMP_DATA[GET_INPUTSOURCE_TYPE()].ColorTemp9300Red + stSystemData.ColorTemp * 3 + 1);
        stColorTempData.ColorTemp[_BLUE]  = *(&tEEPROM_COLORTEMP_DATA[GET_INPUTSOURCE_TYPE()].ColorTemp9300Red + stSystemData.ColorTemp * 3 + 2);
    }
}

//--------------------------------------------------
// Description  : Load default Color Temperature data
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadColorTempDataDefault(void)
{
    stColorTempData.ColorTemp[_RED]   = *(&tEEPROM_COLORTEMP_DATA[GET_INPUTSOURCE_TYPE()].ColorTemp9300Red + stSystemData.ColorTemp * 3);
    stColorTempData.ColorTemp[_GREEN] = *(&tEEPROM_COLORTEMP_DATA[GET_INPUTSOURCE_TYPE()].ColorTemp9300Red + stSystemData.ColorTemp * 3 + 1);
    stColorTempData.ColorTemp[_BLUE]  = *(&tEEPROM_COLORTEMP_DATA[GET_INPUTSOURCE_TYPE()].ColorTemp9300Red + stSystemData.ColorTemp * 3 + 2);
    CEepromSaveColorTempData();
}


//----------------------------------------------------------------------------------------------------


//--------------------------------------------------
// Description  : Load EDID data (MTV512)
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void CEepromLoadEDIDData(void)
{
#if((_MCU_TYPE == _MYSON_MTV512) || (_MCU_TYPE == _REALTEK_RTD2120))

    BYTE cnt;

    MCU_ADC_DDC_ENA_FF20 = 0x06;
    
    for(cnt=0;cnt<128;cnt++)
    {
		MCU_DDCRAM_0[cnt] = MCU_FLASH[(_END_PAGE - _START_PAGE + 1) * 1024 + ucFlashEDIDAddr * 8 - 256 + cnt];
		MCU_DDCRAM_1[cnt] = MCU_FLASH[(_END_PAGE - _START_PAGE + 1) * 1024 + ucFlashEDIDAddr * 8 - 128 + cnt];
    }

    MCU_ADC_DDC_ENA_FF20 = 0x07;

#endif	//End of #if((_MCU_TYPE == _MYSON_MTV512) || (_MCU_TYPE == _REALTEK_RTD2120))
}

//--------------------------------------------------
// Description  : Load EDID data (MTV512)
// Input Value  : None
// Output Value : None

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -