Forum: Mikrocontroller und Digitale Elektronik ATMega Assember, Ausgabe Nachkommastellen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian S. (solder)


Bewertung
0 lesenswert
nicht 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.

von Johann L. (gjlayde) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Mit 10 multiplizieren und dann die Vorkommastalle nehmen ergibt die 1 
dezimale Nachkommastelle.  Vor der Multiplikation die Vorkommastellen 
löschen.

von Jim M. (turboj)


Bewertung
1 lesenswert
nicht lesenswert
Christian S. schrieb:
> Nun würde ich aber gern noch eine Nachkommastelle erhalten,

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

von Marc V. (Firma: Vescomp) (logarithmus)


Bewertung
0 lesenswert
nicht 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%.

: Bearbeitet durch User
von Christian S. (solder)


Bewertung
0 lesenswert
nicht 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.

von Christian S. (solder)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab's jetzt gemacht, wie Johann L. vorgeschlagen hat.

Die erste Nachkommastelle ist recht konstant. Schwankt bei den Messungen 
um 1. Das ist ja normal.

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]
  • [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.