📄 demod_.h
字号:
#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 + -