mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Keil Compiler Float nach Int Convertieren?


Autor: Baggacfreak Baggacfreak (baggacfreaks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich stelle eine Geradengleichung im MC167 gerade auf und dabei verwende
ich Float als Datentyp bei der Steigung und dem Endwert. Diesen Endwert
möchte ich jetzt auf Int Ganzzahl konvertieren und dann als Wert für
eine PWM verwenden (momentan wird die mit 0x0000-0xffff angesteuert für
0 bis 5V!

MfG, Andreas Heisele!

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich gehe mal davon aus, dass Deine Werte alle positiv sind. Wenn das der
Fall ist, sollte ein impliziter cast auf int kein Problem sein.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Runden nicht vergessen!

Bei rein positiven Zahlen reicht:

   int i;
   double j;

   i = (int)( j + 0.5 );

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl Heinz:
Hast natürlich recht. Bei einem cast von float nach int wird ja der
Nachkomma-Teil einfach abgeschnitten...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und das kann zu bösen Überraschungen führen wenn
man keine Rundungskorrektur macht :-)

Autor: Baggacfreak Baggacfreak (baggacfreaks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja mal schaun wie stark sich das auf die Linearisierung meiner NTC Kurve
auswirkt! Danke schonmal 7-)

werd wohl erstmal (int)(gleichung) ausprobieren und wenn das zu ungenau
ist müsste ich dann wohl (int)(gleichung+0.5) machen oder?!?

Autor: Egon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"müsste ich dann wohl (int)(gleichung+0.5) machen oder?!?"

Falls Du dies nicht als unzumutbare Tipparbeit empfindest. :-)
Was hindert Dich daran, genaue Ergebnisse zu produzieren ?

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.