www.mikrocontroller.net

Forum: Compiler & IDEs Winkelfunktionen


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ist es möglich mit einem Mega 128 eine Winkelfunktion wie sin cos oder 
tan auszurechnen?
Wenn ja wie ist dies Möglich.
oder benötige ich hierfür irgendwelche Tabellen?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.
Mit der avr-libc (genauer: der libm.a).
Nein.

p.s.: Es funktioniert ganz einfach so, wie das in C auch sonst
funktioniert.

Autor: Stefan Enge (senge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und nicht vergessen math.h zu includieren.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.
wie kann ich die libm.a einbinden?

schreibe ich dann im code dann nur noch zB. a = cos(90)?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip ja, aber a wird danach nicht 0 sein - cos arbeitet mit 
radian.

Autor: Schlauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <math.h>

nicht vergessen. Dann kannst Du cos(...) und sin(...) direkt im Programm 
aufrufen.

Beim Compilieren und Linken dann das -libm nicht vergessen, sonst gibts 
Fehlermeldungen.

Autor: Zip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>schreibe ich dann im code dann nur noch zB. a = cos(90)?

Das braucht gar keinen Code. Das ist eine eher triviale Tonstante. Die 
anderen Konstanten sollte der PC auch rechnen koennen.

Z

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibts diese funktionen nicht in Grad. Bogenmaß hilft mir weniger.
wenn ich include <libm.a> schreibe dann bringt mir AVRStudio einen 
Fehler.

Autor: John Joe (johnjoe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

zur Umrechnung von Grad in Bogenmaß: Pi/180 * Winkel = Winkel in 
Bogenmaß

Gruss

Johnjoe

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
irgendwie komm ich nicht auf das Ergebnis.

Ich habe eine Hypotenuse von 30 cm und einen Winkel von 45 Grad. Nun 
möchte ich mir die Gegenkathete berechnen. Ich komm aber mit dem 
Bogenmaßfunktion nicht aufs richtige Ergebnis von 21,21 Grad.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum soll diese nicht 21,21 haben?

sin(45) * 30 = 21,21

was soll daran falsch sein?

Autor: Mathelehrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>was soll daran falsch sein?

Die Einheiten. Und die sind auch das Problem, weshalb du mit dem 
Bogenmaß nicht klar kommst.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum die Einheit.
Ich habe halt mal eine Hypotenuse von 30 cm was soll daran Falsch sein? 
und nun will ich die Gegenkathete ausrechnen. Im Einheitskreis ist die 
Gegenkathete 0,707 aber das nützt mir auch nichts.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass die Gegenkathete nich in Grad angegeben sein soll sondern in cm ist 
ja klar. Ich möchte diese aber nur ausrechnen.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja die 21,21 habe ich mit meinem Taschenrechner und der Grad funktion 
ausgerechnet. die AVRs können aber nur Bogenmaß. Ich will dies aber mit 
einem AVR ausrechnen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> die AVRs können aber nur Bogenmaß.

Die AVRs können nur Integer-Zahlen berechnen.  Den Rest macht eine
Bibliothek.

Du solltest dich aber wirklich bitteschön sowohl mit den notwendigen
Grundlagen der Mathematik als auch der Programmiersprache C vertraut
machen.  Das geht auf einem PC besser als auf einem AVR.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir geht es in diesem Beitrag eigentlich nicht um die Programmiersprache 
C. sonder um die Winkelfunktionen. Also ist es nach deiner Meinung nach 
nicht möglich mit einem AVR die Gegenkatete auszurechnen. Weil mit dem 
Bogenmaß kann ich eigentlich nichts anfangen.

Autor: snowman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich das richtig überflogen habe, musst du für 45° nicht 45° 
eingeben sondern 0.25*PI (weil 1*PI 180° entspricht). ...die frage ist 
natürlich, ob du einen integerwert oder einen float oder was auch immer 
der sin-/cos-funktion übergeben musst (habe keine ahnung weil ich mit 
C18 (PICs) arbeite)

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Weil mit dem Bogenmaß kann ich eigentlich nichts anfangen.
?!
http://de.wikipedia.org/wiki/Bogenma%C3%9F ob der Winkel 45° oder Pi/4 
hat ist aber ziemlich wurschd, und die Umrechnungsformel wurde oben 
schon gepostet --> die Formel kann man als präprozessor-makro nutzen, um 
Kontanten als Gradzahlen einzugeben
#define PI 3.14159 ......(geht genauer, hab ich aber nicht im Kopf ;) )
#define DEG_TO_RAD((x)) x * PI / 180.0

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich (als PIC-Nutzer) muß zugeben, daß man mit dem AVR einen Cosinus 
ausrechnen kann. Punktum !

Wie C das macht, sollte Dir egal sein. Und die Umrechnung von Grad auf 
Rad ist trivial und stellt keinerlei Hürde für die Mathematik dar.

Wo ist das Problem wirklich ?
Kannst Du nicht Grad in Radiant umrechnen, oder bist Du zu bequem fürs 
Programmieren ?

Falls Du Probleme mit den Radianten hast solltest Du evtl. bei Deinem 
Taschenrechner beiben...

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Falls Du Probleme mit den Radianten hast solltest Du evtl. bei Deinem
>Taschenrechner beiben...
Vorsicht, der kann auch in Radianten rechnen. ;-)

Winkelfunktionen sind 9. oder 10. Klasse Mathelehrstoff, schau einfach 
mal ins Tafelwerk oder frag deinen Mathelehrer.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mir geht es in diesem Beitrag eigentlich nicht um die
> Programmiersprache C.

Die definiert aber, was die Funktion sin() macht. Das hat mit AVR genau 
gar nichts zu tun.

> Also ist es nach deiner Meinung nach nicht möglich mit einem AVR die
> Gegenkatete auszurechnen.

Wie kommst du auf den Unsinn?

> Weil mit dem Bogenmaß kann ich eigentlich nichts anfangen.

Du hast offensichtlich noch nicht kapiert, daß es möglich (und ziemlich 
einfach) ist, zwischen Winkel und Bogenmaß umzurechnen.

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.