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

📄 ll_tun0360.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
		break;		
		#endif
		#ifdef STTUNER_DRV_TER_TUN_ED5058
		case  	STTUNER_TUNER_ED5058:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"SHARP ED5058");
				#endif
				Tuner->PLLType	=	TUNER_PLL_ED5058; 
				Tuner->SubAddress=0xC2;  /* Avoir anvec davidee*/
			/*	Tuner->WrSubSize=4;		*/
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int)166667L;
				Tuner->IF = (int)36000L;
				Tuner->BandWidth[0] = (int)8000L;/* BS5 in CD2 is set to 1 */
				/* NEXT I WILL GIVE THE CHOICE TO SWITCH BETWEEN 7Mhz AND 8Mhz */
				
				Tuner->BandWidth[1] = (int)0L;
		/*dcdc		Tuner->Repeator = 0;*/
			
			
				/******************NE CHANGE RIEN***************/
				Tuner->WrSize = 5;
				
				
				Tuner->WrBuffer[0] = 0xB;
				Tuner->WrBuffer[1] = 0xF4;
				Tuner->WrBuffer[2] = 0xCA;
				Tuner->WrBuffer[3] = 0x94;
				Tuner->WrBuffer[4] = 0x80;
				
		/*		Tuner->WrSubBuffer[0] = 0x2;
				Tuner->WrSubBuffer[1] = 0x34;
				Tuner->WrSubBuffer[2] = 0x93;
				Tuner->WrSubBuffer[3] = 0x05;*/
			
				
				
				/**********************************************/
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
		#endif
			/***********************************************************************************************/
			/******************MIVAR***************************************/
		#ifdef STTUNER_DRV_TER_TUN_MIVAR
		case  	STTUNER_TUNER_MIVAR:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"MIVAR");
				#endif
				Tuner->PLLType	= TUNER_PLL_MIVAR; 
				Tuner->SubAddress=0xC0;
				Tuner->WrSubSize=5;		
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int)125000L;
				Tuner->IF = (int)36125L;
				Tuner->BandWidth[0] = (int)7600L;
				Tuner->BandWidth[1] = (int)0L;
			/*	Tuner->Repeator = 0;*/
				Tuner->WrSize = 5;
				Tuner->WrBuffer[0] = 0x19;
				Tuner->WrBuffer[1] = 0xF1;
				Tuner->WrBuffer[2] = 0xCC;
				Tuner->WrBuffer[3] = 0xC4;
				Tuner->WrBuffer[4] = 0x8B;
				
				Tuner->WrSubBuffer[0] = 0x19;
				Tuner->WrSubBuffer[1] = 0xF1;
				Tuner->WrSubBuffer[2] = 0xCC;
				Tuner->WrSubBuffer[3] = 0xC4;
				Tuner->WrSubBuffer[4] = 0x83;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
				#ifdef HOST_PC
				/*UsrWrInt("Step",Tuner->StepSize);
				UsrWrDouble("If",(double)(Tuner->IF/1000.0));*/
				#endif
		break;		
		#endif
			/******************Tuner TDED4*******************/
		#ifdef STTUNER_DRV_TER_TUN_TDED4
		case  	STTUNER_TUNER_TDED4:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"ALPS TDED4");
				#endif
				Tuner->PLLType	= TUNER_PLL_TDED4; 
			
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int) 166667L;
				Tuner->IF = (int) 36167L;
				Tuner->BandWidth[0] = (int) 7600L;
				Tuner->BandWidth[1] = (int) 0L;
		/* dcdc	Tuner->Repeator = 0; */
			
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x0B;
				Tuner->WrBuffer[1] = 0xF5;
				Tuner->WrBuffer[2] = 0x85;
				Tuner->WrBuffer[3] = 0x8;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00;
		break;		 
		#endif
			/**************Tuner DTT7102*******************/
		#ifdef STTUNER_DRV_TER_TUN_DTT7102
		case  	STTUNER_TUNER_DTT7102:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"TMM DTT7102");
				#endif
				Tuner->PLLType	=	TUNER_PLL_DTT7102; 
				Tuner->SubAddress=0xC0;
				Tuner->WrSubSize=4;		
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int)166667L;
				Tuner->IF = (int)36000L;
				Tuner->BandWidth[0] = (int)7600L;
				Tuner->BandWidth[1] = (int)0L;
		  /*		Tuner->Repeator = 0; */
			
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x2;
				Tuner->WrBuffer[1] = 0x34;
				Tuner->WrBuffer[2] = 0x93;
				Tuner->WrBuffer[3] = 0x05;
				
				Tuner->WrSubBuffer[0] = 0x2;
				Tuner->WrSubBuffer[1] = 0x34;
				Tuner->WrSubBuffer[2] = 0x93;
				Tuner->WrSubBuffer[3] = 0x05;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
			
		#endif
			/***************TECC2849PG***********************/
		#ifdef STTUNER_DRV_TER_TUN_TECC2849PG
		case  	STTUNER_TUNER_TECC2849PG:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"SEM TECC2849PG ");
				#endif
				Tuner->PLLType	=	TUNER_PLL_TECC2849PG; 
				Tuner->SubAddress=0xC0;
				Tuner->WrSubSize=0;		
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int)166667L;
				Tuner->IF = (int)36125L;
				Tuner->BandWidth[0] = (int)7600L;
				Tuner->BandWidth[1] = (int)0L;
		/*		Tuner->Repeator = 0;*/
			
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x2;
				Tuner->WrBuffer[1] = 0x34;
				Tuner->WrBuffer[2] = 0x93;
				Tuner->WrBuffer[3] = 0x05;
				
				Tuner->WrSubBuffer[0] = 0x2;
				Tuner->WrSubBuffer[1] = 0x34;
				Tuner->WrSubBuffer[2] = 0x93;
				Tuner->WrSubBuffer[3] = 0x05;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
			
		#endif
			
			
			/************TDCC2345*****************/
		#ifdef STTUNER_DRV_TER_TUN_TDCC2345
		case  	STTUNER_TUNER_TDCC2345:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"SEM TDCC2345 ");
				#endif
				Tuner->PLLType	=	TUNER_PLL_TDCC2345; 
				Tuner->SubAddress=0xC0;
				Tuner->WrSubSize=0;		
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int)166667L;
				Tuner->IF = (int)36125L;
				Tuner->BandWidth[0] = (int)7600L;
				Tuner->BandWidth[1] = (int)0L;
		/*		Tuner->Repeator = 0;*/
			
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x2;
				Tuner->WrBuffer[1] = 0x34;
				Tuner->WrBuffer[2] = 0x93;
				Tuner->WrBuffer[3] = 0x05;
				
				Tuner->WrSubBuffer[0] = 0x2;
				Tuner->WrSubBuffer[1] = 0x34;
				Tuner->WrSubBuffer[2] = 0x93;
				Tuner->WrSubBuffer[3] = 0x05;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
			
		#endif
#endif		
			
			default:
				Tuner->Error = TNR_TYPE_ERR;
			break;
		}
#ifdef HOST_PC
UsrRdInt("Step",&step);
Tuner->StepSize = (int)step;
UsrRdDouble("If",&If);
Tuner->IF=(int)(1000*If);
#endif
/*dcdc		TunerReadWrite(WRITE);*/
/*dcdc		TunerReadWrite(READ);*/
	}
}


/*****************************************************
**FUNCTION	::	LL_tuner_tuntdrv_Select
**ACTION	::	Select the type of tuner used
**PARAMS IN	::	type	==> type of the tuner
**				address	==> I2C address of the tuner
**PARAMS OUT::	NONE  
**RETURN	::	NONE
*****************************************************/

void LL_TunerSelect(TUNTDRV_InstanceData_t* Tuner,STTUNER_TunerType_t type,unsigned char address)

{
	Tuner->Error=TNR_NO_ERR;
	Tuner->TunerType = type;
	Tuner->Address = address;
	
	 LL_TunerInit(Tuner);
	
}

/*****************************************************
**FUNCTION	::	LL_TunerSetRepeator
**ACTION	::	Select the type of tuner used
**PARAMS IN	::	type	==> type of the tuner
**				address	==> I2C address of the tuner
**PARAMS OUT::	NONE  
**RETURN	::	NONE
*****************************************************/
void LL_TunerSetRepeator(TUNTDRV_InstanceData_t* Tuner, unsigned short int  repeator)
{

	Tuner->Repeator = repeator;
}

/*****************************************************
**FUNCTION	::	LL_TunerGetError
**ACTION	::	return the error state of the tuner 
**PARAMS IN	::	NONE
**PARAMS OUT::	NONE  
**RETURN	::	error
*****************************************************/
int LL_TunerGetRepeator(TUNTDRV_InstanceData_t* Tuner)
{
	return Tuner->Repeator;
}


/*****************************************************
**FUNCTION	::	LL_TunerSelectBandwidth
**ACTION	::	Select the bandwidth of the tuner (if this one not exist,
**				closest value bigger than bandwidth will be selected)
**PARAMS IN	::	bandwidth	==> bandwidth of the tuner 
**PARAMS OUT::	NONE  
**RETURN	::	Selected bandwidth, 0 if error
*****************************************************/
int LL_TunerSelectBandwidth(TUNTDRV_InstanceData_t* Tuner, int bandwidth)
{
	
	
	Tuner->SelectBW = 0;
	
	if(!Tuner->Error)
	{
		while(	(Tuner->BandWidth[Tuner->SelectBW + 1] != 0) && 
				(bandwidth > Tuner->BandWidth[Tuner->SelectBW]))
		{
			Tuner->SelectBW++;
		}
	
		
		
		return Tuner->BandWidth[Tuner->SelectBW];  
	}
	else return 0;
}


/*****************************************************
**FUNCTION	::	LL_TunerSetNbSteps
**ACTION	::	Set the number of steps of the tuner
**PARAMS IN	::	nbsteps ==> number of steps of the tuner
**PARAMS OUT::	NONE  
**RETURN	::	NONE
*****************************************************/
void LL_TunerSetNbSteps(TUNTDRV_InstanceData_t* Tuner,int nbsteps)
{
	if(!Tuner->Error)
	{
		switch(Tuner->PLLType)
		{
#ifdef STTUNER_BASIC			
			#ifdef STTUNER_DRV_TER_TUN_TDLB7
			case TUNER_PLL_TDLB7:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  				Tuner->WrBuffer[2] = (unsigned char) ( 0x85 | ((nbsteps >> 16) & 0x60) );  /* PE=0,R=0xc */
			break ;	
			#endif
			#ifdef STTUNER_DRV_TER_TUN_TDEB2
			case TUNER_PLL_TDEB2:/* new ALPS */
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  				Tuner->WrBuffer[2] = (unsigned char) ( 0x85 );
			break ;
			#endif
			#ifdef STTUNER_DRV_TER_TUN_DTT7572
			case TUNER_PLL_DTT7572:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  				Tuner->WrBuffer[2] = (unsigned char) ( 0x93);
			break;
			#endif
			#ifdef STTUNER_DRV_TER_TUN_EAL2780
			case TUNER_PLL_EAL2780:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
			break;
			#endif
			#ifdef STTUNER_DRV_TER_TUN_TDA6650
			case TUNER_PLL_TDA6650:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
				
				Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrSubBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
			break;
			#endif
			#ifdef STTUNER_DRV_TER_TUN_TDM1316
			case TUNER_PLL_TDM1316:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
				
				Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrSubBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
			break;
			#endif
			#if defined( STTUNER_DRV_TER_TUN_DTT7578)|| defined( STTUNER_DRV_TER_TUN_DTT7592)
			case TUNER_PLL_DTT7578:
			case TUNER_PLL_DTT7592:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
				Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrSubBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  			break;
			#endif
                        #ifdef STTUNER_DRV_TER_TUN_ENG47402G1
			case TUNER_PLL_ENG47402G1:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
				nbsteps = ((nbsteps * Tuner->StepSize + 500000)/1000000);
				Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 4) & 0xff );    
				Tuner->WrSubBuffer[1] = (unsigned char) ( ((nbsteps <<4) & 0xF0)|0x4) ;
			break;
			#endif
			#ifdef STTUNER_DRV_TER_TUN_ED5058
			case TUNER_PLL_ED5058:
			
				/**************** A RAJOUTER**************************************/
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  			
  			/*	Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );*/
			/*	Tuner->WrSubBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );*/
  				/******************************************************************/
  			#endif	
  			/************MIVAR*******************************/
  			#ifdef STTUNER_DRV_TER_TUN_MIVAR
  			case TUNER_PLL_MIVAR:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
				
				Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrSubBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
			break;
			#endif
			#ifdef STTUNER_DRV_TER_TUN_TDED4
			/************Tuner TDED4**************************/
			case TUNER_PLL_TDED4:/* new ALPS */
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  				Tuner->WrBuffer[2] = (unsigned char) ( 0x85 );
			break ;
			#endif
			/*********Tuner DTT7102*************************/
			#ifdef STTUNER_DRV_TER_TUN_DTT7102
			case TUNER_PLL_DTT7102:
				Tuner->WrBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  				Tuner->WrSubBuffer[0] = (unsigned char) ( (nbsteps >> 8) & 0x7f );
				Tuner->WrSubBuffer[1] = (unsigned char) ( (nbsteps >> 0) & 0xff );
  			
			break;
			#endif
			/*********Tuner TECC2849PG************************/
			#ifdef STTUNER_DRV_TER_TUN_TECC2849PG

⌨️ 快捷键说明

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