Forum: Mikrocontroller und Digitale Elektronik Zahlenumwandlung


von Marco (Gast)


Lesenswert?

Hallo,
Kann mir jemand sagen, wie ich am besten eine 8-Bit-Dualzahl in ein 
"LCD-freundliches" Format umwandeln kann?
Also, wie gesagt: ich hab ein Byte voll mit 0 und 1. Dieses möchte ich 
so aufsplitten, dass ich für jede Dezimal-Stelle(hunderter/zehner/einer) 
ein eigenes Byte hab. Hat jemand ne Routine in Assembler dafür? Wär echt 
nett.
thx marco

von crazy horse (Gast)


Lesenswert?

das ist ganz einfach, Byte durch 10 teilen, der Rest gibt schon die 
Einer. Das Ergebnis nochmal durch 10 teilen, Rest ergibt die Zehner, 
Ergebnis die Hunderter. Zur Umwandlung in ASCII zu jeder Zahl nochmal 
0x30 addieren.

von Marco (Gast)


Lesenswert?

Hi
... wenn du mir jetzt noch sagst, wie ich durch 10 dividiere...
MfG marco

von Eckhard (Gast)


Lesenswert?

Du kannst auch 100 abziehen, bis die Zahl kleiner als 100 ist. Bei jeder 
Subtraktion erhöhst Du Byte1 um 1. Danach fängst Du an 10 abzuziehen bis 
das ergebnis kleiner 10 ist und erhöhst Byte2. Byte 3 ist dann der Rest 
den Du übrig hast. Ist eigentlich ne Division in einzelschritten aber 
was solls.


Eckhard

von crazy horse (Gast)


Lesenswert?

http://www.atmel.com/atmel/products/prod203.htm
avr200, da ist (fast) alles drin, was man so als Assemblerprogrammierer 
für Multiplikation/Division ganzer Zahlen braucht.

von Marco (Gast)


Lesenswert?

Oh, die Site kannte ich noch nicht. Steht ja wirklich (fast) alles drin 
:-)
Habs aber mit der Subtraction gemacht, da ich Stellen sofort in der 
richtigen Reihenfolge ausgeben kann, ohne Register für die 
Zwischenspeicherung zu verwenden. Die Dinger werden nämlich langsam 
knapp bei mir.

thx

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.