PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dezimalzahl via I2C/TWI übertragen?



Teslafan
15.01.2012, 12:59
Servus ihr lieben,

hab da mal ne Frage. Über den I2C Bus wird eine Zahl ja Dual übertragen, welche im Code als hex oder dual angegeben wird. Habe in meinem Code eine Dezimalzahl welche ich bei Tastendruck hochzähle. Wie kann ich diese Zahl nun über den I2C Bus übertragen? Muss ich diese vor der Übertragung in dual oder hex umwandeln? Wenn Ja, gibts da ne einfache Möglichkeit in C? Von C# weiß ich das es nen Befehl dafür gibt, doch bei C bezweifle ich das. Hab bei Google zwar was gefunden, jedoch war dies wohl eine recht umständliche Variante mit Arays. Steh grad diesbezüglich etwas auf dem Schlauch.

Gruß Andi

Kampi
15.01.2012, 13:18
Die Zahl steht in einer Variable und die Variable überträgst du dann einfach per I²C. Der Controller rechnet immer nur mit Dualzahlen.
Das Hexsystem ist soweit ich weiß nur eine Vereinfachung für uns Menschen.

Teslafan
15.01.2012, 13:45
Vielen Dank für deine schnelle Antwort. Dann ist die ganze Sache ja einfacher als ich dachte. Mal zur Abwechslung etwas leichtes :)

oberallgeier
15.01.2012, 15:05
... einfacher als ich dachte. Mal zur Abwechslung etwas leichtes ...Im Prinzip ist es leicht, ja, ABER... Die Übertragung mit I²C erfolgt byteweise. Die Darstellung der Dezimalzahl ist mindestens vier Bytes lang. Du musst also die vier Bytes der Reihe nach (zumindest immer an den richtigen Zielort) übertragen - und am Zielort wieder korrekt auslesen. Ist aber auch nicht wirklich kompliziert. Ebenso werden int16 und int32 usw. Byte für Byte übertragen.