Gast
#918442
Hallo,
folgenden Codeteil soll ich in integer arithmetik übersetzen, da der
Controller keine floating point unit besitzt, und somit nur über eine
library float zahlen rechnen könnte, was zu einr zu langen rechenzeit
führen würde. Was muss ich beim überetzen in integer arithetik beachten?
Gruß
Samuel
double xv0, xv1 = 0.0, uf, phi = 1.2566370614e+05;
"voltage"-controlled oscillator */
phi += (uf * 2.2222222222e-05); /* T */
while (phi < -PI) phi += TWOPI;
while (phi >= +PI) phi -= TWOPI;
/* phase detector */
double ud = in.im * cos(phi) - in.re * sin(phi);
/* loop filter (hf gain = tau2/tau1) */
xv0 = xv1;
xv1 = 1.7944313386e+03 * ud; /* (tau2/tau1) / G */
uf += (xv1 - 9.8044334903e-01 * xv0); /* C */
return phi;