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

📄 mst705Ȧ

📁 MST705源代码
💻
📖 第 1 页 / 共 2 页
字号:

#define _USERPREF_C_

#include <math.h>
#include "types.h"
#include "board.h"
#include "global.h"
#include "nvram.h"
#include "DEBUG.h"
#include "menudef.h"
#include "menufunc.h"
#include "i2c.h"
#include "tv.h"
#include "panel.h"
#include "mstar.h"
#include "msAce.h"
#include "adjust.h"
#include "userpref.h"
#include "ms_rwreg.h"
#define HFreq_Tol	16 // 1.6 KHz
#define VFreq_Tol	8  // 0.8 Hz


BYTE usrCalCheckSum(BYTE *pBuf, BYTE ucBufLen)
{
    BYTE CheckSum;
    CheckSum = 0;
    do
    {
        CheckSum += pBuf[ucBufLen-1];
        ucBufLen--;
    }
    while(ucBufLen);

    return CheckSum;
}

#if (VGA_ENABLE)
void InitPCSetting(void)
{
    g_PcSetting.Brightness=DefBrightness;
    g_PcSetting.Contrast=DefContrast;
    g_PcSetting.AdcRedGain=0x1080;//0x1450;		//gan
    g_PcSetting.AdcGreenGain=0x1080;//0x1450;		//gan
    g_PcSetting.AdcBlueGain=0x1080;//0x1450;		//gan
    g_PcSetting.AdcRedOffset=0x00;
    g_PcSetting.AdcGreenOffset=0x00;
    g_PcSetting.AdcBlueOffset=0x00;
    g_PcSetting.SavedModeIndex=UserModeNumber;
}
#endif

#if (YPBPR_ENABLE)
void InitYPbPrSetting(void)
{
    g_YPbPrSetting.Brightness=DefYPbPrBrightness;
    g_YPbPrSetting.Contrast=DefYPbPrContrast;
    g_YPbPrSetting.Saturation=DefYPbPrSaturation;
    g_YPbPrSetting.AdcRedGain=0x1180;
    g_YPbPrSetting.AdcGreenGain=0x100b;
    g_YPbPrSetting.AdcBlueGain=0x1158;
    g_YPbPrSetting.AdcRedOffset=0x0800;
    g_YPbPrSetting.AdcGreenOffset=0x0800;
    g_YPbPrSetting.AdcBlueOffset=0x0800;
    g_YPbPrSetting.SavedModeIndex=UserModeNumber;
}
#endif

void InitVideoSetting(void)
{
  //putstr("\r\nInit Video Setting!");
    g_VideoSetting.ucVersion=VideoVersion;

    g_VideoSetting.Language=0;
    g_VideoSetting.OsdHStart=50;
    g_VideoSetting.OsdVStart=50;
    g_VideoSetting.InputType=Input_YPBPR;

    g_VideoSetting.volume=50;
    g_VideoSetting.MuteStatus=0;

    g_VideoSetting.MonitorFlag=bPowerOnBit;

    g_VideoSetting.VideoBrightness = DefVideoBrightness;
    g_VideoSetting.VideoContrast =   DefVideoContrast;
    g_VideoSetting.VideoSaturation = DefVideoSaturation;
    g_VideoSetting.VideoHue =        DefVideoHue;
    g_VideoSetting.VideoSharpness=	2;

    g_VideoSetting.DOWN=0;
    g_VideoSetting.Scaling=Scaling_Full;
    g_VideoSetting.TunerAGC=0x10;

    g_VideoSetting.OsdTime=2;
    g_VideoSetting.VideoColorSys=0;
    g_VideoSetting.videoAGC=8;

    g_VideoSetting.VcomDC =SET_BVOM_DC;
    g_VideoSetting.VcomAC =SET_BVOM_OUT;

    #if TV_ENABLE
    g_TVChSetting.ucCurChannelNO =0;
    g_TVChSetting.ucPreChannelNO =0;
    g_TVChSetting.TvCurChannelMisc =(CHROMA_AUTO<<4)|TV_SOUND_BG;
    {
	BYTE ucTemp;
    for(ucTemp=0;ucTemp<((TV_MAX_CHANNEL_NUM+1)/8)+2;ucTemp++)
	g_ucTVChannelSkipInfoBuff[ucTemp]=0;
	WatchDogClear();

    #if TV_SYSTEM==TV_NTSC
    g_TVChSetting.TvCurChannelMisc =(CHROMA_NTSC<<4)|TV_SOUND_M;
    g_TVChSetting.ucTVSource=NTSC_ATV;
    g_TVChSetting.ucATVChannelNO=0;
    g_TVChSetting.ucCTVChannelNO=0;

    for(ucTemp=0;ucTemp<((CATV_MAX_CHANNEL_NUM+1)/8)+2;ucTemp++)
	g_ucCATVChannelSkipInfoBuff[ucTemp]=0;
    #endif

    EraseTvSkipInfo();

    }
    #endif
}

void SaveVideoSetting(void)
{
	//putstr("\r\nSave Video Setting!");
    g_VideoSetting.Checksum= usrCalCheckSum((BYTE *)&g_VideoSetting, (VideoSettingSize - CheckSumSize));
	NVRam_WriteTbl(VideoSettingAddr, (BYTE*)&g_VideoSetting, VideoSettingSize);
}

#if (VGA_ENABLE)
void SavePCSetting(void)
{
    g_PcSetting.Checksum= usrCalCheckSum((BYTE *)&g_PcSetting, PCSettingSize - CheckSumSize);
    NVRam_WriteTbl(PCSettingAddr, (BYTE*)&g_PcSetting, PCSettingSize);
}

void LoadPCSetting(void)
{
    BYTE ucCheckSum;

    NVRam_ReadTbl(PCSettingAddr, (BYTE*)&g_PcSetting, PCSettingSize);
    ucCheckSum=usrCalCheckSum((BYTE *)&g_PcSetting, PCSettingSize - CheckSumSize);

    if(g_PcSetting.Checksum!=ucCheckSum)
    {
        InitPCSetting();
        SavePCSetting();
    }
}
#endif

#if (YPBPR_ENABLE)
void SaveYPbPrSetting(void)
{
    g_YPbPrSetting.Checksum= usrCalCheckSum((BYTE *)&g_YPbPrSetting, YPbPrSettingSize - CheckSumSize);
    NVRam_WriteTbl(YPbPrSettingAddr, (BYTE*)&g_YPbPrSetting, YPbPrSettingSize);
}

void LoadYPbPrSetting(void)
{
    BYTE ucCheckSum;

    NVRam_ReadTbl(YPbPrSettingAddr, (BYTE*)&g_YPbPrSetting, YPbPrSettingSize);
    ucCheckSum=usrCalCheckSum((BYTE *)&g_YPbPrSetting, YPbPrSettingSize - CheckSumSize);

    if(g_YPbPrSetting.Checksum!=ucCheckSum)
    {
        InitYPbPrSetting();
        SaveYPbPrSetting();
    }
}
#endif

void msChipVersionRead(void)
{
    BYTE ucBank;
    BYTE ucChip_D_Version=0;
    ucBank=msReadByte(BK0_00_REGBK);
    msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
    ucChip_D_Version=msReadByte(BK0_F1_CHIP_VERSION);

    switch(ucChip_D_Version)
	{
	case 5:
		VD_Type=MARIA2_F;
		break;
	case 4:
		VD_Type=MARIA2_E;
		break;
	case 3:
		VD_Type=MARIA2_D;
		break;
	case 6:
		VD_Type=MARIA2_G;
		break;
	default:
		VD_Type=MARIA2_G;
		break;
	}

    msWriteByte(BK0_00_REGBK, ucBank);
}

#if RM_EEPROM_TYPE<RM_TYPE_SST512
void LoadVideoSetting(void)
{
	BYTE ucCheckSum;

	//putstr("\r\nLoad Video Setting!");
    NVRam_ReadTbl(VideoSettingAddr, (BYTE*)&g_VideoSetting, VideoSettingSize);
    ucCheckSum=usrCalCheckSum((BYTE *)&g_VideoSetting, VideoSettingSize - CheckSumSize);

	if(g_VideoSetting.Checksum!=ucCheckSum)
	{
		InitVideoSetting();
		SaveVideoSetting();
	}
}

BOOL CheckBoard(void)
{
	BYTE  i=5,j=5, temp;
	BOOL VideoSumOk, BoardSumOK;

  	while(i--)
  	{
		NVRam_ReadByte(nvrVideoAddr(ucVersion), &(g_VideoSetting.ucVersion));

		if (g_VideoSetting.ucVersion==VideoVersion)
		{
			VideoSumOk=TRUE;
			break;
		}
		else
			VideoSumOk=FALSE;
  	}

  	while(j--)
  	{
	    NVRam_ReadByte(BoardChkSumAddr, &temp);

		if (temp==BoardVersion)
		{
			BoardSumOK=TRUE;
			break;
		}
		else
			BoardSumOK=FALSE;
  	}

	printf("\r\nBoardVer<%x>", temp);

    if(BoardSumOK&&VideoSumOk)
	    return TRUE;
    else
        return FALSE;
}


void ReadSetting(void)
{
    BOOL tempValue;
    tempValue=CheckBoard();

    if (tempValue)
    {
        putstr("\r\nLoad !");
#if(VGA_ENABLE)
        LoadPCSetting();
#endif
#if(YPBPR_ENABLE)
        LoadYPbPrSetting();
#endif
        LoadVideoSetting();

#if TV_ENABLE
        ReadChannelNumberSetting();
        ReadChannelSkipInfoSetting();
#endif
    }
    else
    {
        putstr("\r\nUpdate!");
#if (VGA_ENABLE)
        InitPCSetting();
        SavePCSetting();
        InitSaveModeFlag();
#endif
#if (YPBPR_ENABLE)
        InitYPbPrSetting();
        SaveYPbPrSetting();
        InitSaveModeFlag();
#endif

        InitVideoSetting();
        SaveVideoSetting();

#if TV_ENABLE
        SaveChannelNumberSetting();

#if TV_SYSTEM==TV_PAL
        EraseEepromTvFlag(0);
#endif
#endif

⌨️ 快捷键说明

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