📄 tuner_philips_fq1216.c
字号:
/* --------------------------------------------------------------------------
Function : Tuner_CalChannel
Prupose : Calculate channel frequency
Arguments : -- -- --
Returns : -- -- --
External : -- -- --
Notes :
-------------------------------------------------------------------------- */
#include "reg51.h"
#include "common.h"
#include "TW803Reg.h"
#include "System.h"
#include "SRC_ctrl.h"
#include "OSDCtrl.h"
#include "TwoWire.h"
#include "OSDDraw.h"
#include "NVRam.h"
#include "Remote.h"
#include "Keypad.h"
#include "Tuner.h"
#include "Freq_Table.h"
void Tuner_CalChannelFreq(void)
{
Byte lbChCount = 0 ;
Byte lbChDiff = 0 ;
//------- Check channel boundary
if ( DIR_TV_CHANNEL > CH_END ) // Check channel up boundary
DIR_TV_CHANNEL = CH_START;
else if ( DIR_TV_CHANNEL < CH_START ) // Check channel down boundary
DIR_TV_CHANNEL = CH_END;
//------- Search channel frequency according to channel number
do {
gwDivider = CH_Freq(DIR_TV_MODE,lbChCount);
lbChDiff = DIR_TV_CHANNEL - CH_NO(DIR_TV_MODE,lbChCount);
if ( ++lbChCount >= CH_TYPE_TOTAL )
{
--lbChCount;
break;
}
}while ( DIR_TV_CHANNEL >= CH_NO(DIR_TV_MODE, lbChCount) );
//------- Calculate offset channel frequency
if(lbChDiff)
gwDivider += ( CH_BANDWIDTH(DIR_TV_MODE,lbChCount) / TUNER_DIV_RATIO ) * lbChDiff ;
//------- Check channel exist
gbExist = TUN_CH_EXIST() ;
}
/* --------------------------------------------------------------------------
Function : Tuner_WriteFreq
Prupose : Write channel frequency and control command to tuner
Arguments : Bool afUpDn 0:Channel Up / 1:Channel Down
Returns : -- -- --
External : -- -- --
Notes :
-------------------------------------------------------------------------- */
void Tuner_WriteFreq(BOOL afUpDn)
{
Byte bBandPort;
Byte bTemp[4];
Byte IFbTemp[4];
#if (SWAP_TV_SW==ON)
gwDivider=Tuner_ReadFreq();
#endif
//------- Check band type
if ( gwDivider >= TUNER_H_BAND_MIN_FREQ ) // Check on the High band range
bBandPort = TUNER_BS_H_BAND ;
else if( gwDivider >= TUNER_M_BAND_MIN_FREQ ) // Check on the Mid band range
bBandPort = TUNER_BS_M_BAND ;
else // Check on the Low band range
bBandPort = TUNER_BS_L_BAND ;
afUpDn = afUpDn; // To prevent compile warning
bTemp[0] = mHIBYTE(gwDivider);
bTemp[1] = mLOBYTE(gwDivider);
bTemp[2] = TUNER_CB1;
bTemp[3] = bBandPort;
switch( DIR_PalTvSys )
{
case PALTVSYS_BG:
IFbTemp[0] = TUNER_IF_SDA;
IFbTemp[1] = TUNER_BG_BDATA;
IFbTemp[2] = TUNER_BG_CDATA;
IFbTemp[3] = TUNER_BG_EDATA;
break;
case PALTVSYS_I:
IFbTemp[0] = TUNER_IF_SDA;
IFbTemp[1] = TUNER_I_BDATA;
IFbTemp[2] = TUNER_I_CDATA;
IFbTemp[3] = TUNER_I_EDATA;
break;
case PALTVSYS_DK:
IFbTemp[0] = TUNER_IF_SDA;
IFbTemp[1] = TUNER_DK_BDATA;
IFbTemp[2] = TUNER_DK_CDATA;
IFbTemp[3] = TUNER_DK_EDATA;
break;
}
I2C_WrBytes_NoSub(TUNER_ADB, &bTemp, 4);
}
/* --------------------------------------------------------------------------
Function : Tuner_AFC_Control
Prupose : Tuner AFC control function
Arguments : -- -- --
Returns : Bool -- Is fine tune success
External : -- -- --
Notes :
-------------------------------------------------------------------------- */
Bool Tuner_AFC_Control(void)
{
#if (TUNER_AFC_CONTROL==ON)
Word lwDivider;
Byte lbAFC_Cnt;
Bool lfUpDn ;
// ------------ Save frequency
lwDivider = gwDivider;
// ------------ Fine tune control
for (lbAFC_Cnt=0; lbAFC_Cnt<15; lbAFC_Cnt++)
{
Delay(30,MS);
switch( Tuner_ReadStatus() )
{
// -187.5 K
case 8:
gwDivider -= TUNER_FINETUNE_HIGH;
lfUpDn = 0;
break;
// -125.0 K
case 9:
case 10:
gwDivider -= TUNER_FINETUNE_MID;
lfUpDn = 0;
break;
// - 62.5 K
case 11:
case 12:
case 13:
gwDivider -= TUNER_FINETUNE_LOW;
lfUpDn = 0;
break;
// Center freqency
default:
case 0:
case 1:
case 14:
case 15:
return SUCCESS;
break;
// + 62.5 K
case 2:
case 3:
case 4:
gwDivider += TUNER_FINETUNE_LOW;
lfUpDn = 1;
break;
// +125.0 K
case 5:
case 6:
gwDivider += TUNER_FINETUNE_MID;
lfUpDn = 1;
break;
// +187.5 K
case 7:
gwDivider += TUNER_FINETUNE_HIGH;
lfUpDn = 1;
break;
}
Tuner_WriteFreq(lfUpDn);
}
// ------------ Revocer frequency if AFC fail
gwDivider = lwDivider;
Tuner_WriteFreq(lfUpDn);
return FAILURE;
#else
return SUCCESS;
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -