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

📄 ms_func.c

📁 MST720-DEMO程序
💻 C
📖 第 1 页 / 共 3 页
字号:
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 + -