Hallo zusammen! Ich benutze den Atmega8 und habe folgendes Problem: Ich habe einen 16Bit Wert über zwei Register verteilt (r19 und r20). Diesen Wert möchte ich in der Form: 00000-65535 an einem LCD ausgeben. Hat jemand eine Idee wie man sowas anstellt? Flo
Hab was vergessen: Den LCD kann ich ansteuern. Es geht mir nur um die Umwandlung in Decimalform, sodass ich fünf bytes in fünf anderen Registern an den LCD ausgeben kann. Flo
5 x durch 10 dividieren, der Rest gibt jeweils die entsprechende Dezimalstelle, das Ergebnis wird weiter dividiert, dazu dann jeweils 0x30 addieren. Bsp: 65535/10 =6553, Rest 5, +0x30=0x35 (ASCII 5) 6553/10=655, Rest 3 ... Gibt auch noch die Subtraktionsmethode, ich bevorzuge die Division, kann auch leicht in einer Schleife erledigt werden.
Danke für die schnelle Antwort! Allerdings möchte ich den ganzen Spass in Asm zusammen bekommen. Es ergeben sich zwei probleme mit denen ich nicht zurechtkomme: 1) der 16Bit wert ist über zwei Register verteilt. 2) keine division die einzige idee die ich hätte wäre dass man einen weiteren, gleichen 16Bit über zwei register verteilt, den decrementiert und vergleicht mit 10^n... das ist aber ziemlich hässlich bzw. zeit/speicher auswendig... gruß Flo
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.