paltuner.lst
来自「显示屏驱动源代码」· LST 代码 · 共 747 行 · 第 1/3 页
LST
747 行
delay(20); // Wait for 150mS
if( IsVideoInput() )
if(AFT(TEMP_TVFREQ)) break;
if( (TEMP_TVFREQ > MAX_FREQUENCY ) || (TEMP_TVFREQ < MIN_FREQUENCY)) break;
};
if( IsAudioMuteOn() ) DisplayMuteInfo();
else AudioOn();
}
void ScanTVChannel(void)
C51 COMPILER V7.06 PALTUNER 02/21/2008 14:00:31 PAGE 9
{
BYTE i;
BYTE str[4];
WORD addr;
DWORD TEMP_TVFREQ;
TVChannel = 0;
AudioOff();
//if( Colorsystem == SECAM_L_BAND ) TEMP_TVFREQ = SECAM_L_MIN;
//else
TEMP_TVFREQ = MIN_FREQUENCY;
for( ; TEMP_TVFREQ < MAX_FREQUENCY; TEMP_TVFREQ += FREQ_INC ) //1Mhz++
{
if( WantToStopTVScan() ) break;
SetTVFreq( TEMP_TVFREQ );
delay(20); // Wait for 200mS
if( IsVideoInput() ) {
if(AFT(TEMP_TVFREQ)){
//TVFreq = TEMP_TVFREQ;
TEMP_TVFREQ = TVFreq;
TEMP_TVFREQ += FREQ_INC*2;//32++; 2Mhz++
TVChannel++;
utoa( (WORD)TVChannel, str,10);
DisplayScanTVChannel(str); // Display Channel
SetTVFreqEE( TVChannel, TVFreq );
SetTVPrSystem(TVChannel, 0); // Not skip
SetFineTuneEE(TVChannel, 0); // FineTune = 0
addr = FIRST_SAVEDPR+TVCHNAME + TVChannel*BYTEPERCHANNEL; // Channel Name = "-----" (Default)
for(i=0; i<5; i++, addr++)
WriteEEP( addr, '-' );
}
if( TVChannel > TOTAL_PR ) break;
}
}//for
i=TVChannel+1;
TVChannel = DummyChannel = 1; // First Channel
//070406-start
#if TVTunerDevice==LGTUNER_MK5
ClearScanTV(); // for fast clear scantv osd
#endif //TVTunerDevice==LGTUNER_MK5
//070406-end
SetTVChannel();
if( IsAudioMuteOn() ) DisplayMuteInfo();
else AudioOn();
// Erase remain channel data
for( ; i <= TOTAL_PR; i++ ){
C51 COMPILER V7.06 PALTUNER 02/21/2008 14:00:31 PAGE 10
SetTVFreqEE( i, 0x0fff );
SetTVPrSystem(i, SKIPCHN_MASK); // skip
WriteEEP(FIRST_SAVEDPR+TVCHNAME + i*BYTEPERCHANNEL, 0xff); // First char of the name = 0xff;
SetFineTuneEE(i, 0); // FineTune = 0
}
}
/*
void SaveChannel( BYTE chn )
{
TVChannel = chn;
SetTVFreqEE( TVChannel, TVFreq );
SetTVChannel();
}
*/
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!!
Freq = GetTVFreqEE(TVChannel);
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)
C51 COMPILER V7.06 PALTUNER 02/21/2008 14:00:31 PAGE 11
{
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;
}
*/
void EditTVChn(BYTE _RemoDataCode)
{
WORD TempChannel;
TempChannel = DummyChannel ;
if( TVChManual ) {
TempChannel*= 10;
TempChannel+= _RemoDataCode;
if (TempChannel > TOTAL_PR )
{
while( TempChannel >= 10 )
TempChannel -= 10;
}
}
else {
TempChannel = _RemoDataCode;
}
DummyChannel = TempChannel;
DisplayTVChannel(DummyChannel, 0);
TVChManual = 1; // Request to run channel after timeout.
}
void InitTV(void)
{
//070406-start
#if TVTunerDevice==LGTUNER_MK5
BYTE TVSysIndex=0;
CODE BYTE PALSECAMTunerSysReg[] = {
0x56,0x72,0x49, //for B/G
0x56,0x72,0x4a, //for I
0x56,0x72,0x4b, //for D/K
0x46,0x50,0x4b, //for L
0xc6,0x50,0x53 //for L'
};
MTSType = MTS_STEREO;
#ifdef DEBUG_TV
dPrintf("\r\n++(InitTV) TunerI2CAddress:0x%04x", (WORD)TVTunerI2CAddress);
#endif
TVSysIndex=GetVInputStdDetectModeEE();
WriteI2C(TVTunerIFI2CAddress, 0x00, PALSECAMTunerSysReg[TVSysIndex*3]);
WriteI2C(TVTunerIFI2CAddress, 0x01, PALSECAMTunerSysReg[TVSysIndex*3+1]);
WriteI2C(TVTunerIFI2CAddress, 0x02, PALSECAMTunerSysReg[TVSysIndex*3+2]);
#else //TVTunerDevice==LGTUNER_MK5
C51 COMPILER V7.06 PALTUNER 02/21/2008 14:00:31 PAGE 12
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
#endif //TVTunerDevice==LGTUNER_MK5
//070406-end
}
void ResetTVValue(void)
{
}
#endif //defined( PAL_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 + =
减小字号Ctrl + -
显示快捷键?