📄 eeprom.c
字号:
SubAddress = EE3_GAIN_R_6500;
else if( ModeType== COLOR_5000 )
SubAddress = EE3_GAIN_R_5000;
else
SubAddress = EE3_GAIN_R_USER;
#if SWAP_RED_BLUE
TrmBuf[1] = ZBContrast;
TrmBuf[2] = ZGContrast;
TrmBuf[3] = ZRContrast;
TrmBuf[4] = ZBBrightness;
TrmBuf[5] = ZGBrightness;
TrmBuf[6] = ZRBrightness;
#else
TrmBuf[1] = ZRContrast;
TrmBuf[2] = ZGContrast;
TrmBuf[3] = ZBContrast;
TrmBuf[4] = ZRBrightness;
TrmBuf[5] = ZGBrightness;
TrmBuf[6] = ZBBrightness;
#endif
for(i=1,csum=0; i<=6; i++)
csum += TrmBuf[i];
EepromWrite( SubAddress,6);
if( ModeType== COLOR_9300 )
SubAddress = EE3_CHECKSUM_B0; // Checksum address
else if( ModeType== COLOR_6500 )
SubAddress = EE3_CHECKSUM_B1;
else if( ModeType== COLOR_5000 )
SubAddress = EE3_CHECKSUM_B2;
else
SubAddress = EE3_CHECKSUM_B3;
TrmBuf[1] = csum;
EepromWrite( SubAddress,1); // write checksum
return;
}
void EepromColorDefault(Byte ModeType)
{
if( ModeType== COLOR_9300 )
DataPointer = EEPROMDefault_table2+18;
else if( ModeType== COLOR_6500 )
DataPointer = EEPROMDefault_table2+24;
else if( ModeType== COLOR_5000 )
DataPointer = EEPROMDefault_table2+30;
else
DataPointer = EEPROMDefault_table2+36;
#if SWAP_RED_BLUE
ZBContrast = *(DataPointer);
ZGContrast = *(DataPointer+1);
ZRContrast = *(DataPointer+2);
ZBBrightness = *(DataPointer+3);
ZGBrightness = *(DataPointer+4);
ZRBrightness = *(DataPointer+5);
#else
ZRContrast = *(DataPointer);
ZGContrast = *(DataPointer+1);
ZBContrast = *(DataPointer+2);
ZRBrightness = *(DataPointer+3);
ZGBrightness = *(DataPointer+4);
ZBBrightness = *(DataPointer+5);
#endif
return;
}
// /************************************************************************
// * Function : EepromVideoRecall *
// * Description : Recall *
// * Input : none *
// * Output : none *
// ************************************************************************/
// Byte EepromVideoRecall()
// {
// Byte i,csum,eecsum;
//
// EepromRead( EE3_CHECKSUM_C0, 1);
// eecsum = TrmBuf[0];
//
// EepromRead( EE3_VIDEO_BRIGHTNESS, 6);
// for(i=0,csum=0; i<6; i++)
// csum += TrmBuf[i];
//
// if( csum != eecsum ) /* checksum error */
// return 1;
//
// VideoBrightness = TrmBuf[0];
// VideoContrast = TrmBuf[1];
// VideoSharpness = TrmBuf[2];
// VideoSaturationU = TrmBuf[3];
// VideoSaturationV = TrmBuf[4];
// // VideoHue = TrmBuf[5];
//
// return 0;
// }
//
// void EepromVideoStore()
// {
// Byte i,csum;
//
// TrmBuf[1] = VideoBrightness;
// TrmBuf[2] = VideoContrast;
// TrmBuf[3] = VideoSharpness;
// TrmBuf[4] = VideoSaturationU;
// TrmBuf[5] = VideoSaturationV;
// // TrmBuf[6] = VideoHue;
// for(i=1,csum=0; i<=6; i++)
// csum += TrmBuf[i];
// EepromWrite( EE3_VIDEO_BRIGHTNESS, 6);
//
// TrmBuf[1] = csum;
// EepromWrite( EE3_CHECKSUM_C0,1); // write checksum
//
// return;
// }
//
// void EepromVideoDefault()
// {
// VideoBrightness = EEPROMDefault_table2[ 96];
// VideoContrast = EEPROMDefault_table2[ 97];
// VideoSharpness = EEPROMDefault_table2[ 98];
// VideoSaturationU = EEPROMDefault_table2[ 99];
// VideoSaturationV = EEPROMDefault_table2[100];
// // VideoHue = EEPROMDefault_table2[101];
//
// return;
// }
//**************************************************************************
//Function : EepromWrite
//**********************************************************************/
// void EepromWrite(Word sub_addr, Byte count)
// {
// Byte i;
//
// if(FgFacMode)
// sub_addr = sub_addr +1024;
//
// if( sub_addr < 256 )
// {
// SlvAdr = EEPROM_PAGE0_SLVADR;
// }
// else if( sub_addr < 512 )
// {
// SlvAdr = EEPROM_PAGE1_SLVADR;
// sub_addr = sub_addr - 256;
// }
// else if( sub_addr < 768 )
// {
// SlvAdr = EEPROM_PAGE2_SLVADR;
// sub_addr = sub_addr - 512;
// }
// else if( sub_addr < 1024 )
// {
// SlvAdr = EEPROM_PAGE3_SLVADR;
// sub_addr = sub_addr - 768;
// }
// else if( sub_addr < 1280 )
// {
// SlvAdr = EEPROM_PAGE4_SLVADR;
// sub_addr = sub_addr - 1024;
// }
// else if( sub_addr < 1536 )
// {
// SlvAdr = EEPROM_PAGE5_SLVADR;
// sub_addr = sub_addr - 1280;
// }
// else if( sub_addr < 1792 )
// {
// SlvAdr = EEPROM_PAGE6_SLVADR;
// sub_addr = sub_addr - 1536;
// }
// else
// {
// SlvAdr = EEPROM_PAGE7_SLVADR;
// sub_addr = sub_addr - 1792;
// }
//
// for( i=1; i<=count; i++)
// {
// ByteCnt = 2;
// TrmBuf[0] = (Byte)sub_addr;
// TrmBuf[1] = TrmBuf[i];
// SendEEPROMData();
// if( ++sub_addr == 256 )
// {
// SlvAdr += 2;
// sub_addr = 0;
// }
// }
//
// ShortDelay( 2 );
// }
//
// //**************************************************************************
// //Function : EepromRead
// //*************************************************************************/
// void EepromRead(Word sub_addr,Byte count)
// {
// Byte i;
//
// if(FgFacMode)
// sub_addr = sub_addr +1024;
//
// if( sub_addr < 256 )
// {
// SlvAdr = EEPROM_PAGE0_SLVADR;
// }
// else if( sub_addr < 512 )
// {
// SlvAdr = EEPROM_PAGE1_SLVADR;
// sub_addr = sub_addr - 256;
// }
// else if( sub_addr < 768 )
// {
// SlvAdr = EEPROM_PAGE2_SLVADR;
// sub_addr = sub_addr - 512;
// }
// else if( sub_addr < 1024 )
// {
// SlvAdr = EEPROM_PAGE3_SLVADR;
// sub_addr = sub_addr - 768;
// }
// else if( sub_addr < 1280 )
// {
// SlvAdr = EEPROM_PAGE4_SLVADR;
// sub_addr = sub_addr - 1024;
// }
// else if( sub_addr < 1536 )
// {
// SlvAdr = EEPROM_PAGE5_SLVADR;
// sub_addr = sub_addr - 1280;
// }
// else if( sub_addr < 1792 )
// {
// SlvAdr = EEPROM_PAGE6_SLVADR;
// sub_addr = sub_addr - 1536;
// }
// else
// {
// SlvAdr = EEPROM_PAGE7_SLVADR;
// sub_addr = sub_addr - 1792;
// }
//
// if( (sub_addr + (Word)count) <= 256 )
// {
// ReadI2CData((Byte)sub_addr,count);
// }
// else
// {
// for( i=1; i<=count; i++) /* read into TrmBuf[1..count] */
// {
// ReadI2CData((Byte)sub_addr,1);
// TrmBuf[i] = TrmBuf[0];
// if( ++sub_addr == 256 )
// {
// SlvAdr += 2;
// sub_addr = 0;
// }
// }
// for( i=0; i<count; i++) /* shift left */
// TrmBuf[i] = TrmBuf[i+1];
// }
// return;
// }
void EepromWrite(Word sub_addr, Byte count)
{
#if 0
Byte i,j;
if(FgFacMode)
sub_addr = sub_addr +1024;
j = sub_addr /256;
sub_addr = sub_addr % 256;
SlvAdr = EEPROM_PAGE0_SLVADR + j*2;
for( i=1; i<=count; i++)
{
ByteCnt = 2;
TrmBuf[0] = (Byte)sub_addr;
TrmBuf[1] = TrmBuf[i];
SendEEPROMData();
if( ++sub_addr == 256 )
{
SlvAdr += 2;
sub_addr = 0;
}
}
#else
Bool fg_byte_mode;
Byte i,j;
if(FgFacMode) // Vincent for let set can store
sub_addr = sub_addr +1024; // factory data
j = sub_addr /256;
sub_addr = sub_addr % 256;
SlvAdr = EEPROM_PAGE0_SLVADR + j*2;
fg_byte_mode = 0;
j = sub_addr/16;
i = (sub_addr+count-1)/16;
if(i != j)
{
fg_byte_mode = 1;
}
if( fg_byte_mode==0 )
{
j = 1;
while( 1 )
{
if( count==0 ) break;
if( count >= 8 )
{
for(i=1; i<=8; i++)
{
TrmBuf[i] = TrmBuf[j++];
}
count -= 8;
}
else /* count>=1 && count<=7 */
{
for(i=1; i<=count; i++)
{
TrmBuf[i] = TrmBuf[j++];
}
count = 0;
}
TrmBuf[0] = (Byte)sub_addr;
ByteCnt = i;
SendEEPROMData();
sub_addr += (i-1);
}
}
else
{
for( i=1; i<=count; i++)
{
ByteCnt = 2;
TrmBuf[0] = (Byte)sub_addr;
TrmBuf[1] = TrmBuf[i];
SendEEPROMData();
if( ++sub_addr == 256 )
{
SlvAdr += 2;
sub_addr = 0;
}
}
}
#endif
ShortDelay( 2 );
// Delay(10);
}
//**************************************************************************
//Function : EepromRead
//*************************************************************************/
void EepromRead(Word sub_addr,Byte count)
{
Byte i,j;
if(FgFacMode) // Vincent for let set can read
sub_addr = sub_addr +1024; // factory data
j = sub_addr /256;
sub_addr = sub_addr % 256;
SlvAdr = EEPROM_PAGE0_SLVADR + j*2;
if( (sub_addr + (Word)count) <= 256 )
{
ReadI2CData((Byte)sub_addr,count);
}
else
{
for( i=1; i<=count; i++) /* read into TrmBuf[1..count] */
{
ReadI2CData((Byte)sub_addr,1);
TrmBuf[i] = TrmBuf[0];
if( ++sub_addr == 256 )
{
SlvAdr += 2;
sub_addr = 0;
}
}
for( i=0; i<count; i++) /* shift left */
TrmBuf[i] = TrmBuf[i+1];
}
return;
}
void ResetMode(void)
{
// This segment mask by Vincent 20011218
// Because reset function is recall contrast, brightness, OSD H/V position,
// Timing data form factory setting.
//
// EepromCommonDefault(1);
// OSDHorPosition = EEPROMDefault_table2[ 1];
// OSDVerPosition = EEPROMDefault_table2[ 2];
// EepromCommonStore(0);
// EepromCommonStore(1);
// FgOsdAct=0;
// FgMenuSelect=0;
// OSDNumber=L0_NOOSD;
// OSDMenuPage=L0_NOOSD;
// OSDPoint=0;
Bool btemp;
Byte a,b,c;
btemp = FgFacMode;
FgFacMode=1;
c = OSDLanguage;
EepromCommonRecall(0);
EepromCommonRecall(1);
EepromTimingRecall(ModeCounter);
a=OSDHorPosition;
b=OSDVerPosition;
FgFacMode=0;
EepromCommonRecall(0);
OSDHorPosition=a;
OSDVerPosition=b;
OSDLanguage = c;
EepromCommonStore(0);
EepromCommonStore(1);
EepromTimingStore(ModeCounter);
FgFacMode=btemp;
FgModeChange =1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -