AT90S2313 -> ds18B20 Nachkommastellen->Uart [asm]

Gast #37365
Lesenswert?

Hallo,

nachdem ich jetzt 5 Stunden gesucht habe, und dabei auf ein
paar sehr schöne Code-Beispiele hier gestossen bin (und auch anderswo)
habe ich immernoch ein Problem:

Es gibt ja hunderte von Projekten mit dem DS18S20, ich habe aber ein
paar ds18B20, die ein etwas anderes Format im Speicher haben.

Ich habe da Bits für die Nachkommastellen, also 2^-1, 2^-2, 2^-3 und
2^-4.
Natuerlich koennte ich die einfach ignorieren, oder die 16 möglichen
Werte in eine Lookuptable schreiben, aber geht das nicht auch anders ?

Ich möchte letztlich den Wert übert den UART ausgeben, brauche also
einen 'String'.
Das ganze in Assembler.
Mit einem ds18S20 funktioniert das Programm sehr schön, mit dem b20
kommt natürlich nur murks an.

Vielen Dank für die Hilfe !

Florian 'AVR-Greenhorn' Streibelt
Gast #37366
Lesenswert?

Ich würde das so machen:
Eine 8Bit-Variable für die Nachkommastellen, dabei werden aber nur die
Werte 0-99 benutzt.
Wenn das Bit für 2^-1 gesetzt ist, dann addierst Du 50, bei 2^-2 25,
bei 2^-3 12 und bei 2^-4 6.

Man könnte hier natürlich auch eine 16Bit-Variable benutzen, daber
damit wird die Genauigkeit nicht wirklich höher. Vermutlich (hab' das
Datenblatt nicht gelesen) liegt die Genauigkeit eh bei 1 Grad, so daß
Bruchteile von einem Grad nicht wirklich sinnvoll sind.

Markus

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