mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS18S20 - Erweiterte Genauigkeit


Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

bin gerade dabei einige DS18S20 auszuwerten.
Da ich keine 16bit Multiplikation verwenden wollte, hab ich versuch das 
ganze auf 16bit Substrakion zu vereinfachen.

Nach dem ich die Formel aus dem Datenblatt für eine Temperatur (z.B. 
25°C) und den möglichen Count_Remains angewendet habe, hab ich 
festgestellt dass das ohne weiteres möglich sein sollte.

Count_Remain = 0x01 -> Nachkommastellen = 6875
Count_Remain = 0x02 -> Nachkommastellen = 6250
Count_Remain = 0x03 -> Nachkommastellen = 5625
.
.
.
Count_Remain = 0x0D -> Nachkommastellen = 0000
.
.
.
Count_Remain = 0x10 -> Nachkommastellen = 7500

Der Unterschied ist jeweils 0,0625, also 1/16°C.
Wichtig ist, dass man ab einem Count_Reamin von 0x0E, eins vom Temp_LSB 
abziehen muss.

Sind meine Überlegungen und Berechnungen bis hier her richtig?

Wenn dem so ist kann man einfach eine Schleife programmieren die eine 
16bit Substraktion ausführt bis der Schleifenzähler Count_Remain 
entspricht. Sonderfälle ab Count_Remain = 0x0E beachten (also von 
Temp_Read eins abziehen).

Ist das auch richtig?

Vielen Dank im Voraus.

Mathias

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab vergessen, es werden pro Schleifendurchgang 625, vom Startwert 6875 
abgezogen.

Autor: Sascha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

genauer als 0,1 Grad hat je wohl eh nicht viel Sinn, deshalb mach ich 
das so wie im Anhang - benötigt auch keine Spez. mul/div mit 16bit.

Sascha

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibt es schon einen Thread zu dem Thema:
Beitrag "ds18s20: Wie implementiert Ihr die Formel ?"

900ss

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.