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
Hab vergessen, es werden pro Schleifendurchgang 625, vom Startwert 6875 abgezogen.
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
Hier gibt es schon einen Thread zu dem Thema: Beitrag "ds18s20: Wie implementiert Ihr die Formel ?" 900ss
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.