mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik cos verrechnet sich.


Autor: Matze Niemand (hupe123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich will in meinem Programm den cosinus von einem Winkel berechnen.
Ich benutze einen ATmega128 und win-avr-gcc.
In meine h-File habe ich per
 #include <math.h> 
 die Mathebibliothek eingebunden.
Ich will den Winkel von 53° berechnen. Laut Taschenrechner: 0,601815
aber nach mein µC ist
 cos(53); 
, nachdem ich das per UART mittels
dtostrf(cos( 53 ), 15, 9, buffer) 
 ausgebenen habe: -0.918282810

Kann mir mal jemand bitte nen Tipp geben! Dank!

Autor: PicoPSU (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cos will seinen Parameter im Bogenmass. math.h definiert M_PI als 
Konstante zum umrechnen.

Autor: Simon Budig (nomis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Cosinusfunktion rechnet im Bogenmaß.

cos (53.0 / 180 * pi);

Viele Grüße,
        Simon

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
The cos() function returns the cosine of __x, measured in radians.
http://www.nongnu.org/avr-libc/user-manual/group__...

Radian / Radiant
http://en.wikipedia.org/wiki/Radian
http://de.wikipedia.org/wiki/Radiant_(Einheit)

53° = 0,925

Autor: Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grad != Bogenmaß

Autor: XXX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Sie dir mal den Unterschied zwischen Winkelgrade und radiant an.
Du arbeitest im Moment mit radiant.

Gruß
Joachim

Autor: mr. mo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Musst in Bogenmaß angeben.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Cosinus von 53 ist im Gradmaß ~0,6.
Im Bogenmaß ist das Ergebnis tatsächlich ~-9,2!

Man geht beim Bogenmaß nämlich nicht von einem Vollkreis mit 360°, 
sondern mit 2Pi aus. Das ist nämlich der Umfang des Einheitskreises.

Umrechnen kann man mit dem Umstellen der folgenden Gleichung:

Gradmaßwinkel / 180° = Bogenmaßwinkel / Pi

Da deine Funktion mit dem Bogenmaß rechnet, musst du den Gradmaßwinkel 
vorher in einen Bogenmaßwinkel umrechnen und dann erst den Cosinus 
ausrechnen:

Bogenmaßwinkel = Gradmaßwinkel / 180° * Pi

Autor: Schulze und Schultze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde sogar vermuten, dass die verwendete cos Funkion ihren 
Parameter, den Winkel, im Bogenmass erwartet.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr habt doch alle keine Ahnung!

die Funktion cos() braucht den Parameter in Bogenmaß! ;-)

Autor: Simon Budig (nomis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt ist das Bogenmaß überspannt.

Das Bogenmaß ist voll!

Viele Grüße,
        Simon   :-)

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matze: Geh mal nicht immer davon aus dass sich millionenfach bewaehrte 
und getestete Hardware bzw. Software "verrechnet", nur weil Du nicht 
damit umgehen kannst. Es gehoert nen bissel zum Lernprozess dazu, sich 
klar zu  machen, dass der Fehler wahrscheinlich bei Dir selber zu suchen 
ist oder es an verstaendnis mangelt ;) In diesem Fall haette es z.B. 
geholfen, das manual zur Funktion zu lesen.
$ man 3 cos
...
DESCRIPTION
       The cos() function returns the cosine of x, where x is given in radians.

Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.