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
Du addierst immer 1 und wenn die letzte Stelle A geworden ist addierst du einfach nochmal 6 dazu. In C: x++; if( (x & 0x0f)==0x0a ) x+=6;
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?
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?
Hallo, ich meinte es so wie Karl Heinz Buchegger es verstanden hat. Habe mich da wohl nicht wirklich klar ausgedrückt. Vielen Dank. Gruß Steffen
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.