ATMega Assember, Ausgabe Nachkommastellen

OP #4806817
Lesenswert?

Hallo,

ich wollte mal eure Meinung hören: Um den Messwert Luftfeuchtigkeit vom 
Si7021 in % umzurechnen, wird folgende Formel angegeben:

RH% = 125 * RH_Code / 65536 - 6

RH_Code ist ein 16 Bit-Wert. Im Prinzip ganz einfach, ich multipliziere 
beide Bytes mit 125 und addiere die Ergebnisse anschließend um ein Byte 
vesetzt miteinander. Ich erhalte eine 24-Bit-Zahl. Die Division schenke 
ich mir, denn im höchsten Byte ist dann schon die Ganzzahl des Wertes 
enthalten, von der ich einfach 6 abziehe. Die Ausgabe erfolgt über eine 
Schleife, die 100er, 10er abzieht und die Durchläufe für jede 
Dezimalstelle zählt.

Nun würde ich aber gern noch eine Nachkommastelle erhalten, hab' aber 
keine Ahnung, wie ich das hinbekommen soll. Es sind 2 Nachkommabytes. 1 
reicht schon oder sogar noch weniger Bit. Wie komme ich auf die passende 
Dezimalziffer? Bei Beschränkung auf 4 oder 5 Bit würde eine Tabelle 
gehen. Gibt es noch einen anderen (eleganten) Weg?

Statt mit % könnte ich auch in %% rechnen (also alles *10), dann wäre 
aber die Multiplikation aufwendiger, da ich nicht mehr mit 8 Bit 
multipliziere. Außerdem muss man noch prüfen, ob man über 100 bzw. unter 
0 liegt (was passieren kann). Das würden dann auch 16 Bit Operationen 
werden.
(Firma: Vescomp) #4806902
Lesenswert?

Jim M. schrieb:
> Gibt die der Si7021 laut Datenblatt überhaupt her?
> Nö. Datenblatt sagt: +- 3% RH. Da brauchste die Nachkommastelle nicht
> mehr,
> da is nur Rauschen.

 Ja, ich würde sogar die 125 mit 128 ersetzen, da der dadurch
 entstandener Fehler etwa 2,34% beträgt und somit kleiner ist.
 Und linksschieben ist bedeutend schneller als Multiplikation...

 Und +/- 3% RH ist im Endeffekt genauso ungenau wie +/- 5%.
OP #4807001
Lesenswert?

Mag, sein, dass der +/- 3% Ungenauigkeit hat. Die Frage ist die 
Reproduzierbarkeit eines Ergebnisses. Wenn alle Werte z.B. +2.5% sind, 
passt das mit der Nachkommastelle durchaus. Bislang habe ich mit dem 
DHT22 gemessen und der ist bestimmt nicht besser. Mit der 
Nachkommastelle erkenne ich aber besser die Tendenz der Messungen, denn 
bis sich vorn etwas tut, dauert es viel länger. Nur dafür wollte ich die 
Stelle, nicht um die Feuchtigkeit besonders genau zu messen. Ich meine 
auch nicht, dass es dort schon besonders rauschen wird. Ich werde es 
einfach probieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren