Nur als Nachtrag: So geht es auch mit negativen Werten. Am µC würde man wohl lieber float nehmen, um Speicher und Rechenzeit zu sparen.// korrektes auf- und abrunden von double werten
int d2i(double d)
{
return d<0?d-.5:d+.5;
}
Grüße
Danke Robocat, das werde ich mir notieren, als schriftlicher Speicher, mein Speicher im Kopf ist schon etwas flüchtig geworden mit dem Alter
Ich muss Spannungen auswerten, wo es nicht auf milliVolts ankommt, wohl aber auf glatte Zahlen...
Gruss Gerhard
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Double und Float ist eigentlich auf einem µC ohne FPU zu vermeiden, da es lahm ist und unnötig Speicher frisst.
Am einfachsten dürfte Festkomma Arithmetik sein und du addierst das erste bit nach dem Komma auf deine Ganzzahl. Ist es 0, ist dein Wert kleiner 0.5 ist es 1 ist er mindestens 0.5.
Wie man aber mit einem Festkomma unter C programmiert, weiß ich leider nicht.
Bei deinem Problem könntest du mMn. auch komplett auf Kommazahlen Verzichten, indem du mit mV rechnest un am Ende dann alles so weit verschiebst, dass Volt raus kommen und zum Schluss den Carry addiert.
Kommt aber ein bisschen auf die Messung an, ob es sich lohnt.
Wie groß ist denn deine Auflösung, deine Referenzspannung und dem entsprechen, wie viel mV hat ein bit?
Lesezeichen