Forum: Mikrocontroller und Digitale Elektronik 16 Bit Zahl am LCD in decimal Form ausgeben


von Flo (Gast)


Lesenswert?

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

von Flo (Gast)


Lesenswert?

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

von crazy horse (Gast)


Lesenswert?

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.

von Flo (Gast)


Lesenswert?

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

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

anbei ein paar Routinen, alles kein Problem

von Flo (Gast)


Lesenswert?

super! genau das brauche ich :)danke!

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
Noch kein Account? Hier anmelden.