mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LM75 Problem


Autor: Jörg (Gast)
Datum:

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

Autor: Toni Volkmer (Gast)
Datum:

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

Autor: Santa Klaus (Gast)
Datum:

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

Autor: Swen Strobel (Gast)
Datum:

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

Autor: Jörg (Gast)
Datum:

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

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.