Hallo!
Ich programmiere gerade einen Infinion 80C509 mit Keil µVision Umgebung(C51-Compiler).
Habe die atan()-funktion verwendet und bei den ersten Tests auch die richtigen Ergebisse erhalten. Jedoch stimmen die Ergebnisse nur in wenigen Fällen. Die falschen Ergebnisse liegen komplett ausserhalb des Wertebereichs des atan(). (pi/2 .. -pi/2)
Frage: Sind da irgendwelche Probleme bekannt?
Muss man den Wert vor Verwendung des atan() umrechnen?
Über eure Hilfe würde ich micht sehr freuen.
Bin mit meinem Latein am Ende.
P.s. hier der verwendete Code:
#include <math.h>
#include <stdio.h> /* for sprintf */
void tst_atan (void) {
float x;
float y;
char str[20];
for (x = -10.0; x <= 10.0; x += 0.1) {
y = atan (x);
sprintf (str,"ATAN(%f) = %f", x, y);
LCD(1,1,str); // display ausgabe
}
}
Wenn jemand den gleichen Compiler verwendet, kann er dir vielleicht besser helfen.
Ich tät mal prüfen:
Sind die Werte steigend /fallend oder springt das Ergebnis rum
Mag er keine negativen Zahlen
FAQ beim Keil schauen, restriktionen nochmals nachlesen etc.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen