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


von Baggacfreak B. (baggacfreaks)


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!

von johnny.m (Gast)


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.

von Karl heinz B. (kbucheg)


Lesenswert?

Runden nicht vergessen!

Bei rein positiven Zahlen reicht:

   int i;
   double j;

   i = (int)( j + 0.5 );

von johnny.m (Gast)


Lesenswert?

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

von Karl heinz B. (kbucheg)


Lesenswert?

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

von Baggacfreak B. (baggacfreaks)


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

von Egon (Gast)


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 ?

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.