Hex zu decimal / ASM

OP #265542
Lesenswert?
• ▲
▼
Servus,

ich habe mir eine Funktion geschrieben, die mir den Wert eines
Registers (AVR-8BIT) in Decimaldarstellung wandelt.
Maximaler Wert von 8 bit decimal wären 255; als Ausgabe erhalte ich
drei Register, Inhalt: R1=2; R2=5; R3=5;
Das ganze habe ich noch so erweitert, dass ich der Funktion auch ein
Word übergeben kann, als Ergebnis erhalte ich fünf Register.

Das Teil läuft...Da liegt mein Problem; es läuft und läuft und läuft -
und hört 200ms später wieder aus. Funktion gegeben, setzen, sechs ;-)

Der Ablauf im groben:
Register vergleich auf 10; wenn größer dann subtrahieren 10 und zähle
einer/zehner/hunderter (je nach Stand einer/zehner/hunderter) rauf.

VIelleicht hat jemand noch einen wirklich Super-Trick auf Lager ;-)

Vielen Dank
#265544
Lesenswert?
• ▲
▼
Nunja, ich kenne deine Routine nicht...

Aber schau dir mal das hier an:

http://www.mikrocontroller.net/forum/read-1-262112.html#262230

Das schreibt das Ergebnis zwar nicht in Register oder SRAM, sondern
gibt es gleich an das LCD aus.

Du musst es ja nicht unbesehen übernehmen, aber es schadet sicher
nicht, sich das mal etwas genauer anzusehen oder auch mal im Simulator
laufen zu lassen. Denn so lange dauert die Berechnung nichtmal.

Die Routinensammlung "lcdprint.inc" ist im Laufe der Zeit entstanden
und wird gelegentlich an neue Erfordernisse angepasst. In znduhr01.asm
siehst du, wie die Routinen genutzt werden.

Weitere Tipps findest du auch in der Codesammlung.

...
Gast #265547
Lesenswert?
• ▲
▼
Servus,
alos falls du eine Hochsprache einsetzt, löst sich das Problem fast von
alleine:
Z.B. mit dem CodeVision:
Ausgabe ans Terminal: printf(" %d ",value); //mit char value
Ausgabe auf LCD:
Verwende da meist die stdlib.h und konvertiere den Char in int und lass
ihn dann ausgeben, hört sich kompliziert an, sind aber nur wenige Zeilen
in Hochsprache:
char value, *string;
int abc;

abc=atoi(value);   //atoi aus stdlib: ascii to integer
itoa(abc,string);  //itoa integer to ascii (string)
lcd_puts(string);  //Ausgabe des Stings, hier dein char value als
dezimalzahl

Gruß Bob
OP #265549
Lesenswert?
• ▲
▼
Hallo

Vielen Dank für eure Antworten.
Werde mir alles ansehen, ausser die Hochsprache.

@Gerald: Das ist eine Möglichkeit, die ich allerdings nicht nutze ;-)
Bzw. erst im Notfall; aber die Frustration, es nicht selber geschafft
zu haben, wäre einfach zu stark...Da ist mein Ehrgeiz einfach zu massiv
;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren