Fehler im 8051-Programm

OP #5095336
Lesenswert?

Hallo!

Vielleicht hat jemand von euch eine Idee wo hier der Fehler sein könnte:

Es kommt bei jedem zweiten Durchlauf zu einem falschen Ergebnis unten in 
R7. Wenn R2 oben als Zahl "1" durchläuft (Cursor-Position links oben) 
kommt abwechselnd 1 und dann 9 heraus. Bei Startwert "3" kommt 
abwechselnd 3 und dann 10 heraus.

Ich habe alles probiert und die Opcodes stimmen 100%. Den Programmteil 
verwende ich fast identisch sogar in einem anderen Programmabschnitt 
erfolgreich, aber vielleicht nur weil der da immer nur einmal 
durchläuft.
Angehängte Dateien:
Gast #5095359
Lesenswert?

H-G S. schrieb:
> Ich habe alles probiert und die Opcodes stimmen 100%.

Dann zeig doch bitte deinen Assembler-Code als Text und nicht deinen 
Pseudo-Code als Bild.

Wass genau soll dein Code eigentlich erreichen. Sieht nach einer etwas 
verqueren Modulo-Funktion aus, bei der das Ergebnis laut Kommentar im 
Bereich 1-8 statt im Bereich 0-7 liegen soll. Wenn du stattdessen bei 0 
zu zählen beginnen würdest, dann ließe sich dein gesamter Code 
wahrscheinlich ersetzen durch

mov a,r2
anl a,#7

H-G S. schrieb:
> Bei Startwert "3" kommt
> abwechselnd 3 und dann 10 heraus.

dann wird wohl dein clr c vom Beginn doch nicht so im Code stehen.

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