From b92cdc1b49d71a52acd23f4feb176ac1427b2618 Mon Sep 17 00:00:00 2001 From: Thierry Leconte Date: Sat, 15 Nov 2003 08:13:04 +0000 Subject: [PATCH] limit pll's vfo excursion --- dsp.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dsp.c b/dsp.c index a4d4aad..624ba1e 100755 --- a/dsp.c +++ b/dsp.c @@ -26,13 +26,15 @@ #include "filter.h" #include "filtercoeff.h" -#define Fe 11025 +#define Fe 11025.0 +#define Fc 2400.0 +#define DFc 50.0 #define PixelLine 2080 #define Fp (2*PixelLine) #define RSMULT 10 #define Fi (Fp*RSMULT) -static double FreqOsc=2400.0/Fe; +static double FreqOsc=Fc/Fe; static double FreqLine=1.0; extern int getsample(float *inbuff ,int nb); @@ -62,6 +64,9 @@ DPhi=-atan2(Qp,Ip)/M_PI; DF=K1*DPhi+FreqOsc; FreqOsc+=K2*DPhi; +if(FreqOsc>((Fc+DFc)/Fe)) FreqOsc=(Fc+DFc)/Fe; +if(FreqOsc<((Fc-DFc)/Fe)) FreqOsc=(Fc-DFc)/Fe; + PhaseOsc+=2.0*M_PI*DF; if (PhaseOsc > M_PI) PhaseOsc-=2.0*M_PI; if (PhaseOsc <= -M_PI) PhaseOsc+=2.0*M_PI; @@ -69,7 +74,7 @@ if (PhaseOsc <= -M_PI) PhaseOsc+=2.0*M_PI; return (float)(In*Io); } -static double fr=2400.0/Fe; +static double fr=Fc/Fe; static double offset=0.0; getamp(float *ambuff,int nb) @@ -112,7 +117,7 @@ int n; if(nam