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

📄 d0899_util.h

📁 st7710的tuner标准驱动
💻 H
字号:
/* -------------------------------------------------------------------------
File Name: d0899_util.h

History:
Description: STb0899 driver LLA	V1.0.8 17/01/2005

Date 18/04/05
Comments: LLA2.0.0 integration
author: SD

Date 31/05/05
Comments: LLA3.0.0 integration
author: SD
---------------------------------------------------------------------------- */
#ifndef H_STB0899_UTIL
	#define H_STB0899_UTIL
	
	#include "ioreg.h"

	#define FE_STB0899_MAXLOOKUPSIZE 50    
	
/* Delay calling task for a period of microseconds */
#if defined(ST_OS21)  || defined(ST_OSLINUX)
#define STB0899_Delay(micro_sec) task_delay((signed int) \
                                  (((micro_sec) + 999) / 1000) * \
                                  ST_GetClocksPerSecond() / 1000)
#else
#define STB0899_Delay(micro_sec) task_delay((unsigned int) \
                                  (((micro_sec) + 999) / 1000) * \
                                  ST_GetClocksPerSecond() / 1000)
#endif  
#define WAIT_N_MS_899(x) STB0899_Delay((x*1000))
	/*	Signal type enum	*/
	typedef enum
	{
		NOAGC1_899=0,
		AGC1OK_899,
		NOTIMING_899,
		ANALOGCARRIER_899,
		TIMINGOK_899,
		NOAGC2_899,
		AGC2OK_899,
		NOCARRIER_899,
		CARRIEROK_899,
		NODATA_899,
		FALSELOCK_899,
		DATAOK_899,
		OUTOFRANGE_899,
		RANGEOK_899
	} FE_STB0899_SIGNALTYPE_t;
	
	/*	Synthesizer enum	*/
	typedef enum 
	{
		SYNTH_DIGITAL_899,			/*	digital synthesizer	*/
		SYNTH_ANALOG_899			/*	analog synthesizer	*/
	} SYNTHESIZER_899;
	
	/* Counter enum */
	typedef enum
	{
		COUNTER1_899 = 0,
		COUNTER2_899 = 1,
		COUNTER3_899 = 2
	} ERRORCOUNTER;
	
		
	/* One point of the lookup table */
	typedef struct
	{
		S32 realval;	/*	real value */
		S32 regval;		/*	binary value */
	} FE_STB0899_LOOKPOINT_t;

	/*	Lookup table definition	*/
	typedef struct
	{
		S32 size;		/*	Size of the lookup table	*/
		FE_STB0899_LOOKPOINT_t table[FE_STB0899_MAXLOOKUPSIZE]; 	/*	Lookup table	*/
	} FE_STB0899_LOOKUP_t;
		
	long FE_899_PowOf2(int number);
	U32 FE_899_XtoPowerY(U32 Number, U32 Power);
	S32 FE_899_RoundToNextHighestInteger(S32 Number,U32 Digits);
	long FE_899_GetPowOf2(int number); 
	long Log2Int(int number);
	long Log10Int(long number);
	int SqrtInt(int Sq);	
	
	S32 FE_STB0899_CalcAGC1Gain(U8 regvalue);
	U8 FE_STB0899_CalcAGC1Integrator(S32 gain); 
	S32 FE_STB0899_CalcAGC0Gain(U8 regvalue);
	
	S32 FE_STB0899_InputFifoSize(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle);
	S32 FE_STB0899_InputFifoLevel(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle);
	BOOL FE_STB0899_RegulateInputFifo(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle); 

	U32 FE_STB0899_GetMclkFreq(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, U32 SyntFreq);
	U32 FE_STB0899_SetSyntFreq(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,SYNTHESIZER_899 Synthe, U32 Quartz, U32 Target); 
	U32 FE_STB0899_GetSyntFreq(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,SYNTHESIZER_899 Synthe, U32 Quartz);   
	
	U32 FE_STB0899_AuxClkFreq(U32 DigFreq,U32 Prescaler,U32 Divider);
	U32 FE_STB0899_F22Freq(U32 DigFreq,U32 F22);

	U32 FE_STB0899_SetSymbolRate(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,U32 MasterClock,U32 SymbolRate);
	U32 FE_STB0899_GetSymbolRate(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,U32 MasterClock); 
	

	S32 FE_STB0899_GetDerotFreq(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,U32 MasterClock);

	U32 FE_STB0899_GetErrorCount(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,ERRORCOUNTER Counter);
	void FE_STB0899_SetStandard(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle,STTUNER_FECType_t FECType, STTUNER_FECMode_t FECMode);
	U32 FE_STB0899_GetError(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, STTUNER_FECType_t FECType, STTUNER_FECMode_t FECMode);
	
	
#endif

⌨️ 快捷键说明

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