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

📄 tuner_xuguang_js-6b111.c

📁 这是T118和T103的通用程序
💻 C
字号:
#include "tuner_XuGuang_JS-6B111.h"
#include "common.h"
#include "System.h"
#include "TwoWire.h"
#include "Tuner.h"


#ifdef TV
#if (TUNER_AFC_CONTROL==ON)
BYTE Tuner_ReadStatus (void) 
{
    return ( TunerReadByte(/*TUNER_ADB*/0xC2) /*& 0x7*/ );
}
#endif

/* --------------------------------------------------------------------------
    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(uDWORD ChFreq) 
{
#if 1
	uCHAR k;
	I2CWriteByte(0x86, 0x00,0xd6);
	I2CWriteByte(0x86, 0x01,0x70);
	I2CWriteByte(0x86, 0x02,/*m_cSoundSystem*/0x0e);

	ChFreq&=0x7fff;
	if(ChFreq < VLMAX)
		k=BAND_VL;
	else if(ChFreq > VHMAX)
		k=BAND_UHF;
	else
		k=BAND_VH;

	TunerWriteByte(0xC6,(uCHAR)(ChFreq>>8),(uCHAR)(ChFreq&0x00FF),k);
#else	
	BYTE  bBandPort;
  	BYTE bTemp[4];

  //------- Check band type
	if( ChFreq >= TUNER_H_BAND_MIN_FREQ ) 		// Check on the High band range
		bBandPort = TUNER_BS_H_BAND ;
  	else if( ChFreq >= 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 ;

 	bTemp[0] = mHIBYTE(ChFreq);
  	bTemp[1] = mLOBYTE(ChFreq);
  	bTemp[2] = TUNER_CB1;
  	bTemp[3] = bBandPort;

	TunerWriteByte1(TUNER_ADB,(uCHAR)bTemp[0],(uCHAR)bTemp[1],bTemp[2],bTemp[3]);
#endif
}

/* --------------------------------------------------------------------------
    Function  : Tuner_AFC_Control
    Prupose   : Tuner AFC control function
    Arguments : --    --                  --
    Returns   : Bool  --                  Is fine tune success
    External  : --    --                  --
    Notes     :
   -------------------------------------------------------------------------- */
uWORD Tuner_AFC_Control(uDWORD ChFreq)
{
#if (TUNER_AFC_CONTROL==ON)
	WORD  OrignChFreq;
  	BYTE  lbAFC_Cnt;
  	
  	BYTE cTemp, cTemp1, i;

  	// ------------ Save frequency
  	OrignChFreq = ChFreq;
	twdDelay(100);//150 //200	//250 //450 //2000
  	// ------------ Fine tune control
  	for (lbAFC_Cnt=0; lbAFC_Cnt < 7; lbAFC_Cnt++) 
	{
		//twdDelay(30);
		for(i=0;i<10;i++){
	   		 twdDelay(20); //Delay can't too short!
			//m_cBuff[0]=Tuner_ReadStatus();
			cTemp=Tuner_ReadStatus();
		}
		//cTemp = m_cBuff[0];
	if(cTemp&0x40)//Lock
	{	
		cTemp1 = cTemp & 0x07;
    		switch( /*Tuner_ReadStatus()*/ cTemp1) 
		{
      			case 4:											// -125.0 K
        			ChFreq += TUNER_FINETUNE_HIGH;			
        			break;     		
      			case 3:											// - 62.5 K
        			ChFreq += TUNER_FINETUNE_MID;
        			break;      		
      			//default:
      			case 2:											// Center freqency
          			return ChFreq;     		
      			case 1:											// + 62.5 K
        			ChFreq -= TUNER_FINETUNE_MID;
        			break;     		
      			case 0:											// +125.0 K
        			ChFreq -= TUNER_FINETUNE_HIGH;
        			break;
    		}

    		Tuner_WriteFreq(ChFreq);
		//twdDelay(100);	//300 //1000
    	}else{
		//break;
		return FAILURE;
    	}
    	
  	}
  	// ------------ Revocer frequency if AFC fail
  	Tuner_WriteFreq(OrignChFreq);
  	return FAILURE;

#else
  	return ChFreq;
#endif
}

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -