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?!?!
Was willst du da noch konvertieren? - Die Daten kommen doch schon als signed Integer (Zweierkomplement, 16 Bit). ...
Öhh, ich will doch wissen wie hoch die Temp ist. Also ins Dezimalsystem konvertieren.
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.
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. ...
hmm, okay: wenn das nur ein darstellungs"problemchen" ist... wahrscheinlich sehe ich probleme, wo gar keine sind. trotzdem besten dank
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.