📄 ms_func.c
字号:
void mstLoadUserSetting(void)
{
if (tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)
{
if ((g_ucSystemFlag & FIRST_AC_ON_FLAG) != FIRST_AC_ON_FLAG) //20050908 kevin
mstSetContrast(Display.ucPcContrast);
mstSetVGAGainOffset();
}
else
{
if ((g_ucSystemFlag & FIRST_AC_ON_FLAG) != FIRST_AC_ON_FLAG) //20050908 kevin
{
mstSetContrast(Display.ucVedioContrast);
mstSetSaturation(Display.ucSaturation);
}
mstSetHue(Display.ucHue);
if (tOSDSourcSELSequence[Display.ucSourceSEL] == YPBPR)
mstSetYPbPrGainOffset();
}
msSetCCFLBrightness();
mstSetBrightness(Display.ucBrightness);
mstSetGamma(Display.ucGamma);
mstSetScalingMode(Display.ucScalingMode);
#if USE_ALLMACEOSD
mstSetDLTI(Display.ucDLTI);
mstSetDCTI(Display.ucDCTI);
mstSetBlackExtension(Display.ucBlackExtension);
mstSetWhiteExtension(Display.ucWhiteExtension);
mstSetFavorColor(Display.ucFavorColor);
mstSetSharpness(Display.ucSharpness);
#else
mstSetMACE(Display.ucMACE);
#endif
osdSetTransparency(Display.ucTransparency);
mstSetVcomDC(Display.ucVCOMdc);
mstSetVcomAC(Display.ucVCOMac);
mstSetSSCStep(Display.ucSSCStep);
mstSetSSCSpan(Display.ucSSCSpan);
}
void mstRecallDefaultSetting(void)
{
Display.ucPcContrast = DEF_CONTRAST;
Display.ucVedioContrast = DEF_CONTRAST;
Display.ucBrightness = DEF_BRIGHTNESS;
Display.ucHue = DEF_HUE;
Display.ucSaturation = DEF_SATURATION;
Display.ucGamma = DEF_GAMMA;
Display.ucScalingMode= DEF_SCALING;
#if USE_ALLMACEOSD
Display.ucDLTI = DEF_DLTI;
Display.ucDCTI = DEF_DCTI;
Display.ucBlackExtension = DEF_BLACK_EX;
Display.ucWhiteExtension = DEF_WHITE_EX;
Display.ucFavorColor = DEF_FAVOR_COLOR;
Display.ucSharpness = DEF_SHARPNESS;
#else
Display.ucMACE = DEF_MACE;
#endif //USE_ALLMACEOSD
Display.ucLanguage = DEF_LANGUAGE;
Display.ucOSDTimer = DEF_OSD_TIMER;
Display.ucTransparency = DEF_TRANSPARENCY;
mstLoadUserSetting();
mstSaveDisplayData();
}
#if (RM_EEPROM_TYPE >= RM_TYPE_SST512)
// Save data to Serial Flash (0xE000 ~ 0xE0XX)
#define SFD_ADDRESS 0xE000
void mstSaveDisplayData(void)
{
BYTE i;
Display.ucCheckSun = 0;
for (i=0 ; i < (sizeof(Display)-1) ; i++)
{
Display.ucCheckSun += *(&Display.ucVersion+ i);
}
// get flash Manufacture ID
MCUXFR_40_SSPI_WD0=0xab;
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0x00;
MCUXFR_43_SSPI_WD3=0x00;
MCUXFR_48_SSPI_TRIG=0xc4;
i=MCUXFR_4C_SSPI_RD3; // PMC Manufacture ID =0x9d
if (i==0x9d)
{
// PMC flash
// 20051207 seven
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xf8;
// Write Status 0x00
MCUXFR_40_SSPI_WD0=0x01;
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_48_SSPI_TRIG=0xf9;
// Write Enable WREN + Sector Erase
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xf8;
MCUXFR_40_SSPI_WD0=0xd7; // Sector Erase 0x00e000
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0xe0;
MCUXFR_43_SSPI_WD3=0x00;
MCUXFR_48_SSPI_TRIG=0xfb;
miscDelay1ms(100);
// WREN + Write Byte
for (i=0;i<sizeof(Display);i++)
{
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xf8;
MCUXFR_40_SSPI_WD0=0x02; //FlashWriteByte SST
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0xe0;
MCUXFR_43_SSPI_WD3=i;
MCUXFR_44_SSPI_WD4=*(&Display.ucVersion+i);
MCUXFR_48_SSPI_TRIG=0xfc;
miscDelay1ms(5);
}
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xf8;
// Write Status 0x0C // 20051207 seven
MCUXFR_40_SSPI_WD0=0x01;
MCUXFR_41_SSPI_WD1=0x0C;
MCUXFR_48_SSPI_TRIG=0xf9;
// Write disable : Reset write enable latch
MCUXFR_40_SSPI_WD0=0x04; // Write disable
MCUXFR_48_SSPI_TRIG=0xf8;
//sysWriteString("Save Flash Data finish.\x0d\x0a");
}
else if(i==0x05)//20050923
{
// SAIFUN flash
// 20051207 seven
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xf8;
// Write Status 0x00
MCUXFR_40_SSPI_WD0=0x01;
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_48_SSPI_TRIG=0xF9;
// Write Enable WREN + Sector Erase
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xF8;
MCUXFR_40_SSPI_WD0=0x81; // Sector Erase 0x00e000
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0xE0;
MCUXFR_43_SSPI_WD3=0x00;
MCUXFR_48_SSPI_TRIG=0xFb;
miscDelay1ms(6);
// WREN + Write Byte
for (i=0;i<sizeof(Display);i++)
{
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xF8;
MCUXFR_40_SSPI_WD0=0x02; //FlashWriteByte SST
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0xE0;
MCUXFR_43_SSPI_WD3=i;
MCUXFR_44_SSPI_WD4=*(&Display.ucVersion+i);
MCUXFR_48_SSPI_TRIG=0xFC;
miscDelay1ms(10);
}
// Write Protect
MCUXFR_40_SSPI_WD0=0x01;
MCUXFR_41_SSPI_WD1=0x0C;
MCUXFR_48_SSPI_TRIG=0xF9;
}
else
{
// SST flash
// 20051207 seven
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xc1;
// disable Write Protect
MCUXFR_40_SSPI_WD0=0x50;
MCUXFR_41_SSPI_WD1=0x01;
MCUXFR_42_SSPI_WD2=0x00;
MCUXFR_48_SSPI_TRIG=0xc8;
// Write Enable WREN + Sector Erase
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xc1;
MCUXFR_40_SSPI_WD0=0x20; // Sector Erase 0x00e000
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0xe0;
MCUXFR_43_SSPI_WD3=0x00;
MCUXFR_48_SSPI_TRIG=0xc4;
miscDelay1ms(25); //from spec page 19
// WREN + Write Byte
for (i=0;i<sizeof(Display);i++)
{
MCUXFR_40_SSPI_WD0=0x06; // Write Enable WREN
MCUXFR_48_SSPI_TRIG=0xc1;
MCUXFR_40_SSPI_WD0=0x02; //FlashWriteByte SST
MCUXFR_41_SSPI_WD1=0x00;
MCUXFR_42_SSPI_WD2=0xe0;
MCUXFR_43_SSPI_WD3=i;
MCUXFR_44_SSPI_WD4=*(&Display.ucVersion+i);
MCUXFR_48_SSPI_TRIG=0xc5;
miscDelay1ms(5);
}
// Enable Write Protect
MCUXFR_40_SSPI_WD0=0x50;
MCUXFR_41_SSPI_WD1=0x01;
MCUXFR_42_SSPI_WD2=0x0c;
MCUXFR_48_SSPI_TRIG=0xc8;
//sysWriteString("Save Flash Data finish.\x0d\x0a");
}
}
void mstLoadDisplayData(void)
{
BYTE CS,i;
BYTE code *address;
address = SFD_ADDRESS;
//sysWriteString("Load Flash Data :");
for (i=0 ; i< sizeof(Display); i++)
{
*(&Display.ucVersion + i) = *(address+i);
//sysWriteHex(*(address+i), 1);
//sysWriteString(" ");
}
//sysWriteString("Load Flash Data finish.\x0d\x0a");
CS = 0;
for (i=0 ; i < (sizeof(Display)-1) ; i++)
{
CS += *(&Display.ucVersion + i);
}
if((Display.ucVersion != DEF_VERSION) || (Display.ucCheckSun != CS))
{
Display.ucVersion = DEF_VERSION;
Display.ucSystemStauts = DEF_SYSTEM_STATUS;
Display.ucSourceSEL = DEF_SOURCE_SEL;
Display.ucPcContrast = DEF_CONTRAST;
Display.ucVedioContrast = DEF_CONTRAST;
Display.ucBrightness = DEF_BRIGHTNESS;
Display.ucHue = DEF_HUE;
Display.ucSaturation = DEF_SATURATION;
Display.ucGamma = DEF_GAMMA;
Display.ucScalingMode= DEF_SCALING;
#if USE_ALLMACEOSD
Display.ucDLTI = DEF_DLTI;
Display.ucDCTI = DEF_DCTI;
Display.ucBlackExtension = DEF_BLACK_EX;
Display.ucWhiteExtension = DEF_WHITE_EX;
Display.ucFavorColor = DEF_FAVOR_COLOR;
Display.ucSharpness = DEF_SHARPNESS;
#else
Display.ucMACE = DEF_MACE;
#endif //USE_ALLMACEOSD
Display.ucLanguage = DEF_LANGUAGE;
Display.ucOSDTimer = DEF_OSD_TIMER;
Display.ucTransparency = DEF_TRANSPARENCY;
Display.ucVgaRedGain = DEF_VGA_GAINR;
Display.ucVgaGreenGain = DEF_VGA_GAING;
Display.ucVgaBlueGain = DEF_VGA_GAINB;
Display.ucVgaRedOffset = DEF_VGA_OFFSETR;
Display.ucVgaGreenOffset = DEF_VGA_OFFSETG;
Display.ucVgaBlueOffset = DEF_VGA_OFFSETB;
Display.ucYPbPrPrGain = DEF_YPBPR_GAINPR;
Display.ucYPbPrYGain = DEF_YPBPR_GAINY;
Display.ucYPbPrPbGain = DEF_YPBPR_GAINPB;
Display.ucYPbPrPrOffset = DEF_YPBPR_OFFSETPR;
Display.ucYPbPrYOffset = DEF_YPBPR_OFFSETPY;
Display.ucYPbPrPbOffset = DEF_YPBPR_OFFSETPPB;
Display.ucVCOMdc = DEF_VCOM_DC;
Display.ucVCOMac = DEF_VCOM_AC;
Display.ucSSCStep = DEF_SSC_STEP0;
Display.ucSSCSpan = DEF_SSC_SPAN0;
mstSaveDisplayData();
}
}
#else
// Save data to EEPROM 24CXX (0x00 ~ 0xXX)
void mstSaveDisplayData(void)
{
BYTE ucByteCount,ucIndexAddr;
ucByteCount = sizeof(Display);
Display.ucCheckSun = 0;
for (ucIndexAddr=0 ; ucIndexAddr < (sizeof(Display)-1) ; ucIndexAddr++)
{
Display.ucCheckSun += *(&Display.ucVersion + ucIndexAddr);
}
ucIndexAddr = 0;
while (ucByteCount >= 1)
{
if (ucByteCount > 8)
{
sysI2CWriteBytes(EEPROMID, ucIndexAddr, 8, (BYTE *)(&Display.ucVersion+ucIndexAddr));
ucByteCount -= 8;
}
else
{
sysI2CWriteBytes(EEPROMID, ucIndexAddr, ucByteCount, (BYTE *)(&Display.ucVersion+ucIndexAddr));
ucByteCount = 0;
}
miscDelay1ms(15);
ucIndexAddr += 8;
}
}
void mstLoadDisplayData(void)
{
BYTE CS,i;
sysI2CReadBytes(EEPROMID, 0x00, sizeof(Display), (BYTE *)(&Display.ucVersion));
CS = 0;
for (i=0 ; i < (sizeof(Display)-1) ; i++)
{
CS += *(&Display.ucVersion + i);
}
if ((Display.ucVersion != DEF_VERSION) || (Display.ucCheckSun != CS))
{
Display.ucVersion = DEF_VERSION;
Display.ucSystemStauts = DEF_SYSTEM_STATUS;
Display.ucSourceSEL = DEF_SOURCE_SEL;
Display.ucPcContrast = DEF_CONTRAST;
Display.ucVedioContrast = DEF_CONTRAST;
Display.ucBrightness = DEF_BRIGHTNESS;
Display.ucHue = DEF_HUE;
Display.ucSaturation = DEF_SATURATION;
Display.ucGamma = DEF_GAMMA;
Display.ucScalingMode= DEF_SCALING;
#if USE_ALLMACEOSD
Display.ucDLTI = DEF_DLTI;
Display.ucDCTI = DEF_DCTI;
Display.ucBlackExtension = DEF_BLACK_EX;
Display.ucWhiteExtension = DEF_WHITE_EX;
Display.ucFavorColor = DEF_FAVOR_COLOR;
Display.ucSharpness = DEF_SHARPNESS;
#else
Display.ucMACE = DEF_MACE;
#endif //USE_ALLMACEOSD
Display.ucLanguage = DEF_LANGUAGE;
Display.ucOSDTimer = DEF_OSD_TIMER;
Display.ucTransparency = DEF_TRANSPARENCY;
Display.ucVgaRedGain = DEF_VGA_GAINR;
Display.ucVgaGreenGain = DEF_VGA_GAING;
Display.ucVgaBlueGain = DEF_VGA_GAINB;
Display.ucVgaRedOffset = DEF_VGA_OFFSETR;
Display.ucVgaGreenOffset = DEF_VGA_OFFSETG;
Display.ucVgaBlueOffset = DEF_VGA_OFFSETB;
Display.ucYPbPrPrGain = DEF_YPBPR_GAINPR;
Display.ucYPbPrYGain = DEF_YPBPR_GAINY;
Display.ucYPbPrPbGain = DEF_YPBPR_GAINPB;
Display.ucYPbPrPrOffset = DEF_YPBPR_OFFSETPR;
Display.ucYPbPrYOffset = DEF_YPBPR_OFFSETPY;
Display.ucYPbPrPbOffset = DEF_YPBPR_OFFSETPPB;
Display.ucVCOMdc = DEF_VCOM_DC;
Display.ucVCOMac = DEF_VCOM_AC;
Display.ucSSCStep = DEF_SSC_STEP0;
Display.ucSSCSpan = DEF_SSC_SPAN0;
mstSaveDisplayData();
}
}
#endif //(RM_EEPROM_TYPE == RM_TYPE_FLASH)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -