www.mikrocontroller.net

Forum: Compiler & IDEs Float in avr-gcc 3.3


Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Fange gerade mit C an und habe eine Frage.

Wieso geht diese Formel nicht.
Will die Steigung einer Gerade berechnen, zum zeichnen auf einem LCD 
Display. Komme aber mit dieser Formel nicht weiter, da sie nicht die 
Ergebnisse liefert, die ich möchte.

Das Ergebnis der Berechnung ist doch 0.6. Aber die Abfrage mit IF auf > 
0.5 geht nicht. Müsste doch y++ machen, oder liege ich da so falsch.


unsigned char x= 3, y = 2 ,x1 = 8,y1 = 5;
float steigung;          //geht doch damit ?????
steigung = (y1 - y) / ( x1 - x); //steigung = 0.6
if ( steigung > 0.5)
    {y++;}

MFG
Dieter

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, Du solltest Dir vor der Benutzung von C zumindest die
Grundlagen der Sprache aneignen.

Dein Ausdruck wird vom Typ »int« berechnet (auch nicht vom Typ
»unsigned char«, wie man auf den ersten Blick annehmen könnte).
Damit ist das Ergebnis dann immer 0.

Du mußt mindestens eine Seite zuvor auf »float« zwingen, oder
besser gleich beide:

steigung = (float)(y1 - y) / (float)(x1 - x);

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

Jetzt geht es. Schaue mir das mit den automatischen Typumwandlungen mal 
genauer an.

MFG
Dieter

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.