📄 mst705Ȧ
字号:
#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 + -