In Hex zählen!?

Gast #399231
Lesenswert?
• ▲
▼
Hallo,

ich möchte in einem Prgramm eine Variable bei einem Tastendruck
raufzählen von 0-60, im Hex-Code, also 0x00 - 0x59 und wenn dann weiter
die Taste gedrückt wird, soll wieder bei 0x00 angefangen werden.

Tastendruckabfrage usw. ist nicht das Problem, mein Problem besteht in
dem Hochzählen im Hex-Code. Kann mir jemand erklären, wie man das
realisieren könnte?

Ich hatte mi mal gedacht ein Array, alle Daten von 0 - 59 in hex da
reinschreiben und dann die ID des Arrrays bei jedem Tastendruck
erhöhen.
Ist aber sicher nicht die beste Lösung oder?

Wäre klasse, wenn mir dabei jemand weiter helfen könnte.

Gruß
Steffen
Gast #399233
Lesenswert?
• ▲
▼
Wieso nicht normal Zählen und den Wert in der Ausgaberoutine in einen
entsprechenden String umwandeln?printf bietet dafür sogar schon
Formatierungsroutinen an (falls du in C programmierst und genug Flash
hast).

Alternativ kann man auch gleich den String halten und das letzte
Zeichen jeweils um 1 erhöhen.wird das Zeichen grösser '9' wird in das
Zeichen ein 'A' geschrieben,wird das Zeichen grösser 'F' wird eine
'0' hineingeschrieben und die ganze Sache für das andere Zeichen
wiederholt.

Nebenbei: Du kennst den Unterschied zwischen einem String und einer
binären Zahl?
#399234
Lesenswert?
• ▲
▼
In mir keimt der Verdacht du möchtest eigentlich in BCD
zählen (BDC = Binary Coded Decimal)

Also:
  0x00, 0x01, 0x02, ... 0x08, 0x09, 0x10, 0x11, ... 0x18, 0x19, 0x20
...

Ansonsten macht deine Frage nämlich absolut keinen Sinn. Dein
µC rechnet weder in hex, noch dezimal sondern einfach nur
binär.
Wenn man zu 0b00001001 (=9 oder 0x09) eins dazuzählt, dann kommt
0b00001010 ( =10 oder 0x0A) raus.

Wenn meine Vermutung von oben stimmt, dann willst du aber
haben, dass

   0x09 + 0x01 = 0x10

in binär

   0b00001001 + 0b0000001 = 0b00010000

oder in dezimal:

   9 + 1 = 16

D.h. du testest das untere Nibbel, ob es 0x09 ist. Wenn
es das ist, dann musst du bei einer Addition von 1 noch
zusätzlich 6 dazuzählen.

Reicht dir das zum Verständnis, oder brauchst du es noch genauer?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.