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

📄 ll_tun0360.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
#ifndef STTUNER_MINIDRIVER
#include "stcommon.h"   
#ifdef HOST_PC
 #include 	<utility.h>
 #include 	<ansi_c.h>   /*to eliminate as the debug code is removed from*/
#endif
					  /* TUnerget steps ... */

/*#include	"def.h"*/

 #ifdef ST_OSLINUX
   #include "stos.h"
#else
 #include 	"string.h"
  /* Standard includes */
   #include "stlite.h"
 #include        "sttbx.h"
 #endif 
#ifdef HOST_PC
 #include	"tun0360.h"
 #else
 #include 	"tuntdrv.h"
#endif
 
#include	"ll_tun0360.h"


#ifdef HOST_PC
#include 	"system.h"     
#include    "i2c.h"
#include    <math.h>
#include    "360_Usr.h"
#include 	"ApplMain.h"
#include 	"360_Map.h"  
#include 	"drivmain.h"   
#include 	"Userpar.h" 
#endif

#define 	WRITE 1
#define 	READ  0

#ifdef ST_OS21
#define WAIT_IN_MS(X)     task_delay( (signed int)(X * (ST_GetClocksPerSecond() / 1000)) )   /*task_delay(X)*/
#else
#define WAIT_IN_MS(X)     task_delay( (unsigned int)(X * (ST_GetClocksPerSecond() / 1000)) )   /*task_delay(X)*/
#endif
/*****************************************************
**FUNCTION	::	LL_TunerSetProperties
**ACTION	::	Set the properties of the tuner
**PARAMS IN	::	tnr	==> tuner properties
**PARAMS OUT::	NONE  
**RETURN	::	NONE
*****************************************************/
void LL_TunerSetProperties(TUNTDRV_InstanceData_t* Tuner,TUNTDRV_InstanceData_t tnr)
{
	int i;
	
	Tuner->Error = tnr.Error; 
	strcpy((char*)Tuner->DeviceName,(char*)tnr.DeviceName);
	Tuner->Address =	tnr.Address;
	
	Tuner->TunerType = tnr.TunerType;
	Tuner->PLLType =	tnr.PLLType; 
	Tuner->I_Q = tnr.I_Q;
	Tuner->FreqFactor = tnr.FreqFactor;
	Tuner->StepSize = tnr.StepSize;
	Tuner->IF = tnr.IF;
	Tuner->Repeator = tnr.Repeator;
	
	Tuner->SelectBW = tnr.SelectBW;
	i=0;
	while(i<(TUN_MAX_BW+1))
	{
		Tuner->BandWidth[i] = tnr.BandWidth[i];
		i++;
	}
	
	Tuner->WrSize = tnr.WrSize;
	
	for(i=0;i<tnr.WrSize;i++)
		Tuner->WrBuffer[i] = tnr.WrBuffer[i];

	Tuner->RdSize = tnr.RdSize;
}

/*****************************************************
**FUNCTION	::	LL_TunerGetProperties
**ACTION	::	Get the properties of the tuner
**PARAMS IN	::	NONE
**PARAMS OUT::	tnr	==> tuner properties   
**RETURN	::	NONE
*****************************************************/
void LL_TunerGetProperties(TUNTDRV_InstanceData_t *Tuner,TUNTDRV_InstanceData_t *tnr)
{
	int i;
	
	if(tnr != NULL)
	{
		tnr->TunerType = Tuner->TunerType;
		strcpy((char*)tnr->DeviceName,(char*)Tuner->DeviceName);
		tnr->Address =	Tuner->Address;
		tnr->PLLType =	Tuner->PLLType; 
		tnr->Error = Tuner->Error;

		tnr->I_Q = Tuner->I_Q;
		tnr->FreqFactor = Tuner->FreqFactor;
		tnr->StepSize = Tuner->StepSize;
		tnr->IF = Tuner->IF;
		tnr->Repeator = Tuner->Repeator;
	
		tnr->SelectBW = Tuner->SelectBW; 
		i=0;
		while(i<(TUN_MAX_BW+1))
		{
			tnr->BandWidth[i] = Tuner->BandWidth[i];
			i++;
		}
	
		tnr->WrSize = Tuner->WrSize;
	
		for(i=0;i<Tuner->WrSize;i++)
			tnr->WrBuffer[i] = Tuner->WrBuffer[i];

		tnr->RdSize = Tuner->RdSize;
	
		for(i=0;i<Tuner->RdSize;i++)
			tnr->RdBuffer[i] = Tuner->RdBuffer[i];
	}
}

/*****************************************************
**FUNCTION	::	LL_TunerResetError
**ACTION	::	reset the error state of the tuner 
**PARAMS IN	::	NONE
**PARAMS OUT::	NONE  
**RETURN	::	NONE
*****************************************************/
void LL_TunerResetError(TUNTDRV_InstanceData_t* Tuner)
{
	Tuner->Error = TNR_NO_ERR;
}

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

/*****************************************************
**FUNCTION	::	LL_TunerInit
**ACTION	::	Initialize the tuner according to its type
**PARAMS IN	::	NONE
**PARAMS OUT::	NONE  
**RETURN	::	NONE
*****************************************************/
void LL_TunerInit(TUNTDRV_InstanceData_t* Tuner)
{
#ifdef HOST_PC
int step;
double If;
#endif
	if(!Tuner->Error)
	{
		Tuner->SelectBW = 0;
		Tuner->BandWidth[TUN_MAX_BW] = 0;	/* To avoid list without end	*/ 
/* dcdc		Tuner->Repeator=0x0;*/ /* no repeator by defaults */
		
		
		switch(Tuner->TunerType)
		{
							 
		
#ifdef STTUNER_BASIC		
		#ifdef	 STTUNER_DRV_TER_TUN_TDLB7
		case  	STTUNER_TUNER_TDLB7:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"ALPS TDLB7");
				#endif
				Tuner->PLLType	=	TUNER_PLL_TDLB7;/* need to be verified */
			
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize = (int) 166667L;
				Tuner->IF = (int) 36166L;
				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] = 0x40;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
		#endif
		
		#ifdef STTUNER_DRV_TER_TUN_TDEB2
		case  	STTUNER_TUNER_TDEB2:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"ALPS TDEB2");
				#endif
				Tuner->PLLType	=	TUNER_PLL_TDEB2;/* need to be verified */
			
				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
		
			
		#ifdef STTUNER_DRV_TER_TUN_DTT7572
		case  	STTUNER_TUNER_DTT7572:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"TMM DTT7572");
				#endif
				Tuner->PLLType	=	TUNER_PLL_DTT7572;/* need to be verified */
			
				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;
		/*dcdc		Tuner->Repeator = 0;*/
			
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x2;
				Tuner->WrBuffer[1] = 0x34;
				Tuner->WrBuffer[2] = 0x93;
				Tuner->WrBuffer[3] = 0x05;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
		#endif
			
		#ifdef STTUNER_DRV_TER_TUN_EAL2780
		case  	STTUNER_TUNER_EAL2780:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"SIEL EAL2780");
				#endif
				Tuner->PLLType	=	TUNER_PLL_EAL2780;/* need to be verified */
			
				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;
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x2;
				Tuner->WrBuffer[1] = 0x34;
				Tuner->WrBuffer[2] = 0x93;
				Tuner->WrBuffer[3] = 0x05;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
		break;		
		#endif
			
			
		#if defined(STTUNER_DRV_TER_TUN_DTT7578) ||defined(STTUNER_DRV_TER_TUN_DTT7592)
		case  	STTUNER_TUNER_DTT7578 :
		case     STTUNER_TUNER_DTT7592 :
			
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"TMM DTT7576");
				#endif
				if(Tuner->TunerType == STTUNER_TUNER_DTT7578)
				{
				   Tuner->PLLType	=	TUNER_PLL_DTT7578;/* need to be verified */
				}
				else
				{
				   Tuner->PLLType	=	TUNER_PLL_DTT7592;/* need to be verified */
				}
				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;
		/*dcdc		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
		#ifdef STTUNER_DRV_TER_TUN_TDA6650
		case  	STTUNER_TUNER_TDA6650:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"TDA 6650");
				#endif
				Tuner->PLLType	=	TUNER_PLL_TDA6650;/* need to be verified */
				Tuner->SubAddress=0xC2;
				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;
		/*dcdc		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
		#ifdef STTUNER_DRV_TER_TUN_TDM1316
		case  	STTUNER_TUNER_TDM1316:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"TDM 1316");
				#endif
				Tuner->PLLType	=	TUNER_PLL_TDM1316;/* need to be verified */
				Tuner->SubAddress=0xC2;
				Tuner->WrSubSize=5;		
				Tuner->I_Q = 1;
				Tuner->FreqFactor = 1;
				Tuner->StepSize =(int)166667L;
				Tuner->IF = (int)36130L;
				Tuner->BandWidth[0] = (int)7600L;
				Tuner->BandWidth[1] = (int)0L;
		/*dcdc		Tuner->Repeator = 0;*/
				Tuner->WrSize = 4;
				Tuner->WrBuffer[0] = 0x19;
				Tuner->WrBuffer[1] = 0xF1;
				Tuner->WrBuffer[2] = 0xC8;
				Tuner->WrBuffer[3] = 0xAC;
				
				
				Tuner->WrSubBuffer[0] = 0x19;
				Tuner->WrSubBuffer[1] = 0xF1;
				Tuner->WrSubBuffer[2] = 0xC8;
				Tuner->WrSubBuffer[3] = 0xAC;
				
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 
				#ifdef HOST_PC
				/*UsrWrInt("Step",Tuner->StepSize);*/
				/*UsrWrDouble("If",(double)(Tuner->IF/1000.0));*/
				#endif
		break;		
		#endif
			
		#ifdef STTUNER_DRV_TER_TUN_ENG47402G1
		case  	STTUNER_TUNER_ENG47402G1:
				#ifdef HOST_PC
				strcpy((char*)Tuner->DeviceName,(char*)"MACO ET-03DT");
				#endif
				Tuner->PLLType	=	TUNER_PLL_ENG47402G1;/* need to be verified */
				Tuner->SubAddress=0xCA;
				
				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->WrSubSize = 4;
				Tuner->WrBuffer[0] = 0x2;
				Tuner->WrBuffer[1] = 0x34;
				Tuner->WrBuffer[2] = 0x93;
				Tuner->WrBuffer[3] = 0x05;
			
				Tuner->RdSize = 1;
				Tuner->RdBuffer[0] = 0x00; 

⌨️ 快捷键说明

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