Forum: Mikrocontroller und Digitale Elektronik cos() Funktion und WinAVR


von Andreas (Gast)


Lesenswert?

Bin relativ neu auf dem Gebiet der MC.
Hab nun versucht in WinAVR eine Funktion zu schreiben, welche
mir die Seitenlänge eines Dreicks berechnet. Dabei hab ich
festgestellt das mir die cos() Funktion andere Werte liefert
als mein Taschenrechner.

Kleines Beispiel:

Ich habe eine Funktion definiert, welche einen Parameter vom
Typ Double hat und die rufe ich folgendermaßen auf:

funktion(cos(27.579));

Das Programm simuliere ich dann im AVRStudio und bekomme dort den

Wert: -0.76783997

als Ergebnis. Der Taschenrechner sagt aber

Wert: 0,88637332656

Meine Frage ist, was habe ich übersehen/nicht bedacht und wie kann ich
diese berechnung korrekt abbilden ?

Gruß

Andreas

von Benedikt (Gast)


Lesenswert?

Schon mal was von Grad und Rad gehöhert ?
anscheinend nicht...
Versuchs mal mit cos(Winkel/360*2*PI)

von Benedikt (Gast)


Lesenswert?

Woebi Grad und Rad nicht ganz das richtige ist:
Der normale Winkel (0-360°) wird meist als Deg bezeichnet und das was
sin und cos ausrechnen benötigt aber Rad (0-2*PI)

von Stefan Kleinwort (Gast)


Lesenswert?

libc erwartet die Winkelangabe in RAD, nicht in Grad.
2 * PI entspricht 360 Grad.

Stefan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.