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

📄 demod_.h

📁 通过PC并口模拟I2C信号
💻 H
📖 第 1 页 / 共 3 页
字号:
#if !defined(AFX_DEMOD_H__4A527E9C_2D46_4EDA_A760_C026C8D9DCD6__INCLUDED_)
#define AFX_DEMOD_H__4A527E9C_2D46_4EDA_A760_C026C8D9DCD6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// demod.h : 僿僢僟乕 僼傽僀儖
//

/////////////////////////////////////////////////////////////////////////////
// Cdemod 僟僀傾儘僌
#define U32 long
#define U16 int
#define U8 char

#define S32 long
#define S16 int
#define S8 char

S16

	#define LSB(X) ((X & 0xFF))
	#define MSB(Y) ((Y>>8)& 0xFF)

static U32 LastBaseAdress=0xffffffff;
static U16 LastPointer=0xffff;

//----------------------------------
//----------------------------------
//gen_macros.h
	#define ABS(X) ((X)<0 ? (-X) : (X))
	#define MAX(X,Y) ((X)>=(Y) ? (X) : (Y))
	#define MIN(X,Y) ((X)<=(Y) ? (X) : (Y)) 
	#define INRANGE(X,Y,Z) (((X<=Y) && (Y<=Z))||((Z<=Y) && (Y<=X)) ? 1 : 0)  
	
	#ifndef MAKEWORD 
		#define MAKEWORD(X,Y) ((X<<8)+(Y))
	#endif
	
	#define LSB(X) ((X & 0xFF))
	#define MSB(Y) ((Y>>8)& 0xFF)
	#define WAIT_N_MS(X) Delay((double)(X)/1000.0)
//----------------------------------
//----------------------------------


//----------------------------------
//----------------------------------
//STB0899_dvbs2util.h
//----------------------------------
#define BTR_NCO_BITS	28 
#define CRL_NCO_BITS 30
#define CRL_GAIN_SHIFT_OFFSET 11;
#define BTR_GAIN_SHIFT_OFFSET 15;


#define ESNO_AVE            3
#define ESNO_QUANT          32
#define AVEFRAMES_COARSE    10
#define AVEFRAMES_FINE      20
#define MISS_THRESHOLD      6
#define UWP_THRESHOLD_ACQ   1125  
#define UWP_THRESHOLD_TRACK 758  
#define UWP_THRESHOLD_SOF   1350  
#define SOF_SEARCH_TIMEOUT 1664100

	
	
	typedef enum
	{
		CORR_PEAK,
		MIN_FREQ_EST,
		UWP_LOCK,
		FEC_LOCK,
		NO_SEARCH
		
	}FE_DVBS2_AcqMode;
	
	typedef enum
	{
		FE_DVBS2_BPSK,
		FE_DVBS2_QPSK,
		FE_DVBS2_8PSK,
		FE_DVBS2_16APSK,
		FE_DVBS2_32APSK
		
	}FE_DVBS2_Mapping_t;

	typedef enum
	{ 
		BPSK,
		QPSK,
		OQPSK,
		PSK8
		
	}FE_DVBS2_Mode_t;
	
	
	typedef enum
	{
		FE_DUMMY_PLF,
		FE_QPSK_14,
		FE_QPSK_13,
		FE_QPSK_25,
		FE_QPSK_12,
		FE_QPSK_35,
		FE_QPSK_23,
		FE_QPSK_34,
		FE_QPSK_45,
		FE_QPSK_56,
		FE_QPSK_89,
		FE_QPSK_910,
		FE_8PSK_35,
		FE_8PSK_23,
		FE_8PSK_34,
		FE_8PSK_56,
		FE_8PSK_89,
		FE_8PSK_910,
		FE_16APSK_23,
		FE_16APSK_34,
		FE_16APSK_45,
		FE_16APSK_56,
		FE_16APSK_89,
		FE_16APSK_910,
		FE_32APSK_34,
		FE_32APSK_45,
		FE_32APSK_56,
		FE_32APSK_89,
		FE_32APSK_910
	}FE_DVBS2_ModCod_t;
	
	typedef enum
	{
		FE_LONG_FRAME,
		FE_SHORT_FRAME
	}FE_DVBS2_FRAME;

	
/*	typedef struct
	{
		FE_DVBS2_ModCod_t ModCod;
		FE_DVBS2_Mapping_t Map;
		FE_STB0899_DVBS2Rate_t PRate;
		
	}FE_DVBS2_MODCOD_Params;*/
	
		
	typedef enum
	{
		RRC_20,
		RRC_25,
		RRC_35
		
	}FE_DVBS2_RRCAlpha_t;
	
	typedef enum
	{
		Q_SIGN_I,
		ARCTAN_LUT
		
	}FE_DVBS2_PhaseDetector_t;
	
	typedef enum
	{
		UW_SNRESTIM		   =0,
		UW_INITIAL		   =1,
		COARSE_FREQ_SEARCH =2,
		COARSE_FREQ_EST    =4,
		FINE_FREQ_SEARCH   =8,
		FINE_FREQ_EST      =16,
		SOF_SEARCH         =32,
		SOF_DECODE         =64,
		WAIT			   =128,
		TRACKING           =256,
		RESET              =512
	}FE_DVBS2_UWP_States;
	
	typedef enum
	{
		FE_DVBS2_NOAGC,
		FE_DVBS2_AGCOK,
		FE_DVBS2_TIMINGOK,
		FE_DVBS2_NOTIMING,
		FE_DVBS2_NOCARRIER,
		FE_DVBS2_CARRIEROK,
		FE_DVBS2_NOUWP,
		FE_DVBS2_UWPOK,
		FE_DVBS2_NODATA,
		FE_DVBS2_DATAOK
		
	}FE_DVBS2_State;
	
	
	typedef struct
	{
		U32	LoopBwPercent;
		U32	SymbolRate;
		U32	MasterClock;
		FE_DVBS2_Mode_t	Mode;
		U32	Zeta;
		U32 SymPeakVal;
		
	}FE_DVBS2_LoopBW_Params_t;
	
	
	typedef struct
	{
		U32	Adapt;
		U32	AmplImbEstim;
		U32	PhsImbEstim;
		U32	AmplAdaptLsht;
		U32	PhsAdaptLsht;
	
	}FE_DVBS2_ImbCompInit_Params_t;
	
	
	typedef struct
	{
		S32 EsNoAve,
			EsNoQuant,
			AveFramesCoarse,
			AveframesFine,
			MissThreshold,
			ThresholdAcq,
			ThresholdTrack,
			ThresholdSof,
			SofSearchTimeout;
			
	}FE_DVBS2_UWPConfig_Params_t;
	
	
	typedef struct
	{
		S32	DvtTable,
			TwoPass,
			AgcGain,
			AgcShift,
			FeLoopShift,
			GammaAcq,
			GammaRhoAcq,
			GammaTrack,
			GammaRhoTrack,
			LockCountThreshold,
			PhaseDiffThreshold;
			
	}FE_DVBS2_CSMConfig_Params_t;
	
	typedef struct
	{
		FE_DVBS2_RRCAlpha_t RRCAlpha;
		FE_DVBS2_Mode_t	ModeMode;
		
		S32		SymbolRate,
				MasterClock,
				CarrierFrequency,
				AveFrameCoarse,
				AveFramefine,
				AgcThreshold;
				
		U16		SpectralInv;
		
	} FE_STB0899_DVBS2_InitParams_t;
	
	typedef struct
	{
		FE_DVBS2_AcqMode AcqMode;
		/*FE_DVBS2_Mode_t mod;*/

		U32 	SymbolRate,
				MasterClock,
				FreqRange,
				CenterFreq,
				AveFrameCoarseAcq,
				AveFramefineAcq,
				AveFrameCoarseTrq,
				AveFramefineTrq;

				
		S16		AutoReacq,
				TracklockSel,
				Zigzag,
				StepSize;
				
	}FE_DVBS2_ReacquireParams_t;
	

//----------------------------------
//STB0899_dvbs2util.h
//----------------------------------
//----------------------------------




//----------------------------------
//----------------------------------
//STB0899_util.h
//----------------------------------
	#define FE_STB0899_MAXLOOKUPSIZE 50    
	
	#define MULT32X32(a,b) (((((long)((a)>>16))*((long)((b)>>16)))<<1) +((((long)((a)>>16))*((long)(b&0x0000ffff)))>>15) + ((((long)((b)>>16))*((long)((a)&0x0000ffff)))>>15))


	/*	Signal type enum	*/
	typedef enum
	{
		NOAGC1=0,
		AGC1OK,
		NOTIMING,
		ANALOGCARRIER,
		TIMINGOK,
		NOAGC2,
		AGC2OK,
		NOCARRIER,
		CARRIEROK,
		NODATA,
		FALSELOCK,
		DATAOK,
		OUTOFRANGE,
		RANGEOK
	} FE_STB0899_SIGNALTYPE_t;

	/* Counter enum */
	typedef enum
	{
		COUNTER1 = 0,
		COUNTER2 = 1,
		COUNTER3 = 2
	} ERRORCOUNTER;
	
	
	/*	Polarization enum	*/
	typedef enum 
	{
		NOPOLARIZATION=0,
		HORIZONTAL,
		VERTICAL,
		H_V,
		V_H
	} POLARIZATION;

	/*	Scan direction enum	*/
	typedef enum 
	{
		SCANUP=1,
		SCANDOWN=-1
	} SCANDIR; 

	/* Scan mode enum */
	typedef enum 
	{
		DRV_SCAN = 0,
		DRV_SEARCH
	} SCANMODE;

	/* 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;
	
	typedef enum
	{
		DVBS1_STANDARD,
		DVBS2_STANDARD,
		DSS_STANDARD
	
	}STB0899_STANDARD;
//----------------------------------
//STB0899_util.h
//----------------------------------
//----------------------------------



⌨️ 快捷键说明

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