📄 tuner.lst
字号:
//Video_Status = TRUE;
SetTVPrSystem(TVChannel, 0); // Not skip
}
// HRC
SetTVFreq( TEMP_TVFREQ+12 ); // STD + 0.75 Mhz
delay(30);
if(IsVideoInput())
{
HRC_Count++ ;
//Video_Status = TRUE;
SetTVPrSystem(TVChannel, 0); // Not skip
}
// IRC
SetTVFreq( TEMP_TVFREQ+32 ); // STD + 2.0 Mhz
delay(30);
if(IsVideoInput())
{
HRC_Flag = 0;
IRC_Flag = 1;
//Video_Status = TRUE;
SetTVPrSystem(TVChannel, 0); // Not skip
}
}
#endif //SUPPORT_HRCIRC
C51 COMPILER V7.50 TUNER 04/01/2008 15:02:43 PAGE 9
// STD
SetTVFreq(TEMP_TVFREQ);
delay(30); // Wait for 100mS
if(IsVideoInput())
{
#ifdef SUPPORT_HRCIRC
STD_Count++ ;
#endif
//Video_Status = TRUE;
SetTVPrSystem(TVChannel, 0); // Not skip
}
//delay(10);
//if( IsVideoInput() )
// AddTVChannelEE(TVInputSel,i);
}
#ifdef SUPPORT_HRCIRC
if( !IRC_Flag )
if( HRC_Count > STD_Count ) {
HRC_Flag = 1;
}
for( TVChannel = 1; TVChannel<125; TVChannel++ )
{
TVFreq = 0;
if( (TVChannel == 5) || (TVChannel == 6))
{
if(IRC_Flag)
TVFreq = 30; // IRC=STD+2.00Mhz
else
{
if( HRC_Flag)
TVFreq = 12; // HRC=STD+0.75Mhz
}
}
else
{
if( HRC_Flag)
TVFreq = -20; // HRC=STD-1.25Mhz
}
SetFineTuneEE(TVChannel, TVFreq);
}// for
#endif // SUPPORT_HRCIRC
CheckAndClearMuteOn();
if( PreTVChannel > ( TVInputSel==CABLETV ? MAX_CABLETV : MAX_AIRTV ) )
TVChannel = 2;
else TVChannel = PreTVChannel;
SetTVChannel();
if( IsAudioMuteOn() ) DisplayMuteInfo();
else AudioOn();
}
C51 COMPILER V7.50 TUNER 04/01/2008 15:02:43 PAGE 10
CODE struct RegisterInfo OSDFineTuneRange={ -31, 31, 0 };
BYTE GetFineTune(void)
{
char val;
int rd;
val = GetFineTuneEE(TVChannel) ;
Mapping1( val, &OSDFineTuneRange, &rd, &UserRange );
return (BYTE)rd;
}
BYTE ChangeFineChannel(BYTE flag)
{
int rd;
char val;
WORD Freq;
val = GetFineTuneEE(TVChannel) ;
Printf("\r\nFine Tune:%d", (WORD)val);
// if( val & 0x80 ) rd = -(val&0x7f)
val = ( flag==UP ? val+1 : val-1 );
if( val < OSDFineTuneRange.Min || val > OSDFineTuneRange.Max )
return 0; // Retry!!
#ifdef PAL_TV
Freq = GetTVFreqEE(TVChannel);
#else
Freq = Get_Channel2Divid();
#endif
Freq = Freq + val;
SetTVFreq( Freq );
SetFineTuneEE(TVChannel, (BYTE)val);
Mapping1( val, &OSDFineTuneRange, &rd, &UserRange );
return (BYTE)rd;
}
void GetFirstChannel(void)
{
TVChannel = DummyChannel = GetTVPrEE();
SetTVChannel();
}
BYTE IsSavedCurChn(void)
{
return( ( GetTVPrSystem( TVChannel ) & SKIPCHN_MASK ) ? CLEARED_CHN : SAVED_CHN );
}
BYTE StoreClearCurChn(void)
{
BYTE val,cleared;
val = GetTVPrSystem( TVChannel );
if( val & SKIPCHN_MASK ) { val &= ( ~SKIPCHN_MASK ); cleared = SAVED_CHN ; }
else { val |= SKIPCHN_MASK; cleared = CLEARED_CHN ; }
SetTVPrSystem( TVChannel, val );
return cleared;
}
C51 COMPILER V7.50 TUNER 04/01/2008 15:02:43 PAGE 11
void EditTVChn(BYTE _RemoDataCode)
{
WORD TempChannel;
TempChannel = DummyChannel ;
if( TVChManual ) {
TempChannel*= 10;
TempChannel+= _RemoDataCode;
#if defined NTSC_TV
if( TempChannel > (TVInputSel==AIRTV ? MAX_AIRTV : MAX_CABLETV ) )
#elif defined NTSC_JAPAN_TV
if (TempChannel > MAX_AIRTV )
#endif
{
while( TempChannel >= 10 )
TempChannel -= 10;
}
}
else {
TempChannel = _RemoDataCode;
}
DummyChannel = TempChannel;
DisplayTVChannel(DummyChannel, 0);
TVChManual = 1; // Request to run channel after timeout.
}
BYTE GetTVType(void)
{
return TVInputSel;
}
BYTE ToggleTVType(void)
{
TVInputSel = (TVInputSel==AIRTV? CABLETV : AIRTV);
SetTVInputSelEE(TVInputSel);
return TVInputSel;
}
void InitTV(void)
{
TVInputSel = GetTVInputSelEE();
MTSType = MTS_STEREO;
#ifdef DEBUG_TV
dPrintf("\r\n++(InitTV) TunerI2CAddress:0x%04x", (WORD)TVTunerI2CAddress);
#endif
#if TVTunerDevice==TVAVA
WriteI2C(0x86, 0x00, 0x30);
WriteI2C(0x86, 0x01, 0x10); //Set NTSC audio
WriteI2C(0x86, 0x02, 0x0c); //Set NTSC Video
#endif
//070406-start
#if TVTunerDevice==LGTUNER_MK5 //Fix Tuner Video 2Vpp problem
WriteI2C(0x86, 0x00, 0x17);
WriteI2C(0x86, 0x01, 0x20); //Set NTSC audio
WriteI2C(0x86, 0x02, 0x44); //Set NTSC Video
#endif
C51 COMPILER V7.50 TUNER 04/01/2008 15:02:43 PAGE 12
//070406-end
}
void ResetTVValue(void)
{
//ResetTVChannelEE(AIRTV);
//ResetTVChannelEE(CABLETV);
}
#endif //defined( NTSC_TV ) && defined(SUPPORT_TV)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = ---- ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -