Hex oder Bin?

Gast #172976
Lesenswert?

Moin!
Ich durchstöbere gerade das DB vom DS1721 (Temperatursensor von
Dallas).

Wie wird denn nun die gemessene Temperatur ausgegeben? Hex, oder bin?

Ich muß ja den eingehenden Wert (2er Komplement mit MSB first)
umwandeln. Das fällt ja bei Hex leichter , da ich in diesem Fall (in C)
einfach nach float oder double konvertieren und durch 256 teilen muß.

Oder habe ich da etwas nihct verstanden?!?!
Gast #172979
Lesenswert?

Und? Wo liegt das Problem?

Meinst Du, daß es einen reellen Unterschied zwischen folgenden
C-Anweisungen gibt?

  int a;

  a = 0x40;
  a = 64;

Also. Der Wandler liefert eine Zahl, fertig.

Wenn Du diese in einer auch für Dich verständlichen Form anzeigen
willst, musst Du nur bei der Textausgabe entsprechend vorgehen.

Ganz simpel, wenn auch etwas Codeintensiv:

  printf("%d", Zahl);

Alternativ könntest Du Dir auch mal ansehen, was die Funktion itoa so
alles macht.
Gast #172980
Lesenswert?

Die Sensoren gibt es mit unterschiedlicher Auflösung, meist ist es 0,5°C
pro Zahlenwert. Du brauchst daher eine Skalierung auf die Auflösung. Das
hat aber nix mit HEX zu tun. Zur Anzeige brauchst du dann noch die
Umwandlung in ASCII (ITOA). Inwieweit die ASCII-Umwandlung bzw. Ausgabe
in der Lage ist, vor der letzten Stelle ein Dezimalkomma auszugeben,
kann ich nicht beurteilen, ich kann kein C. In ASM geht das (bei 0,5°C
pro Einheit), indem man den Wert durch 2 teilt (asr h und ror l) und
anhand des Carrys die Nachkommastelle (0 oder 5) definiert.

Schau dir doch mal in der Codesammlung die Beiträge von Peter Dannegger
zum Thema 1820 an, ich glaube mich zu erinnern, dass da auch was in C
dabei war. Kann aber auch sein, dass das auf seiner HP war.

...

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