Forum: Compiler & IDEs Winkelfunktionen


von Mike (Gast)


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?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Stefan E. (senge)


Lesenswert?

... und nicht vergessen math.h zu includieren.

von Mike (Gast)


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)?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Schlauer (Gast)


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.

von Zip (Gast)


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

von Mike (Gast)


Lesenswert?

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

von John J. (johnjoe)


Lesenswert?

Hi,

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

Gruss

Johnjoe

von Mike (Gast)


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.

von Mike (Gast)


Lesenswert?

warum soll diese nicht 21,21 haben?

sin(45) * 30 = 21,21

was soll daran falsch sein?

von Mathelehrer (Gast)


Lesenswert?

>was soll daran falsch sein?

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

von Mike (Gast)


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.

von Mike (Gast)


Lesenswert?

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

von Mike (Gast)


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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Mike (Gast)


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.

von snowman (Gast)


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)

von Jörg X. (Gast)


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
1
#define PI 3.14159 ......(geht genauer, hab ich aber nicht im Kopf ;) )
2
#define DEG_TO_RAD((x)) x * PI / 180.0

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


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...

von Wolfram (Gast)


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.

von Rolf Magnus (Gast)


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.

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.