Forum: Mikrocontroller und Digitale Elektronik LM75 Problem


von Jörg (Gast)


Lesenswert?

Hi Leute,

ich hab mal ne grundsätzliche Frage zum LM75.Im Datenblatt
steht:"Temperature is represented by a 9-bit ,two's complement word
with an LSB equal to 0,5°C.Das heißt also:

-25°C   = 111001110
-15°C  = 111100010
-8,5°C   = 111110001
-2°C  = 111111100
-1,5°C  = 111111111
-1°C  = 111111110
-0,5°C  = ?????????
 0°C    = 000000000
und welche Binärzahl repräsentiert nun -0,5°C????? laut Datenblatt die
111111111 aber das wären ja schon -1,5°C.
Was mach ich da falsch und was ist mein Denkfehler?

bin für jeden Tip dankbar...

Gruß Jörg

von Toni Volkmer (Gast)


Lesenswert?

LSB equal to 0,5°C sollte ja heißen:

0,5°C = 000000001
1,0°C = 000000010
1,5°C = 000000011

Also wenn ich mich recht an meine Digitaltechnik-Vorlesung erinnere,
ist das mit dem Zweierkomplement eher so:

-0,5°C:
Alle Bitstellen von der zugehörigen positiven Zahl invertieren (1),
dann eins addieren (2).

Also

(0) 000000001 = 0,5°C
(1) 111111110
(2) 111111111 = -0,5°C

1,5°C = 000000011

(1) 111111100
(2) 111111101 = -1,5°C

Ich hoffe mal ich habe mich nicht verrechnet ;)

Gruß,
Toni

von Santa Klaus (Gast)


Lesenswert?

Die Zuordnung ist:

-2,0°C  = 111111100
-1,5°C  = 111111101
-1,0°C  = 111111110
-0,5°C  = 111111111
 0,0°C  = 000000000
+0,5°C  = 000000001
+1,0°C  = 000000010
+1,5°C  = 000000011
+2,0°C  = 000000100

Der Temperaturwert links zählt um 0,5°C nach oben, und die Binärzahl
rechts um 1.

von Swen Strobel (Gast)


Lesenswert?

... die meiner Meinung nach einfachste Abfrage ist folgende:

Wenn Du die 0,5° Auflösung nicht unbedingt brauchst, lies einfach nur
das erste Byte aus. Wenn das >125 (0x7D) ist, invertierst Du es,
addierst 1 dazu und schreibst vor die Temperatur "-" auf Dein
Display. Fertig. Dann kannst Du ja immer noch das zweite Byte auslesen
und gibst, wenn das "0,5-Bit :-)" gesetzt ist, einfach '.5' anstatt
'.0' auf das Display aus.

von Jörg (Gast)


Lesenswert?

Danke euch für die Antworten,jetzt funktionierts einwandfrei,hatte es so
ähnlich gemacht wie Swen Strobel schreibt,von allem was >127 ist das
ZweierKomplement und je nach lobyte halt ,0 oder ,5 drangehängt und da
kam natürlich nur murx raus...jetzt hab ich das LSB(0,5) in die
ZweierKomplementbildung mit einbezogen und siehe da es geht!!!!!

Merci noch mal an alle

Gruß Jörg

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
Noch kein Account? Hier anmelden.