Forum: Mikrocontroller und Digitale Elektronik Fehler im 8051-Programm


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von H-G S. (haenschen)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht 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.

: Verschoben durch Moderator
von Achim S. (Gast)


Bewertung
1 lesenswert
nicht 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.

von Marc H. (marchorby)


Bewertung
-1 lesenswert
nicht lesenswert
H-G S. schrieb:
> 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.

Dann liegt es an der Hardware! Foto vom Aufbau und Schalplan sowie 
Boardfile hier hochladen!

von Peter D. (peda)


Bewertung
3 lesenswert
nicht lesenswert
H-G S. schrieb:
> Ich habe alles probiert

Probieren hat mit Programmieren nichts zu tun.

H-G S. schrieb:
> und die Opcodes stimmen 100%.

Ich sehe nirgends ein *.asm File mit Code.


Läuft gerade ein Kontest, wie beschreibe ich mein Problem möglichst 
ungenau und kompliziert?

von Carl D. (jcw2)


Bewertung
2 lesenswert
nicht lesenswert
Gegeben:
R2: 1..48

Gesucht:
R7: 1..8

Lösung:
MOV A,R2
DEC A
AND A,#07h
INC A
MOV R7,A

von H-G S. (haenschen)


Bewertung
1 lesenswert
nicht lesenswert
Carl D. schrieb:
> Gegeben:
> R2: 1..48
>
> Gesucht:
> R7: 1..8
>
> Lösung:
> MOV A,R2
> DEC A
> AND A,#07h
> INC A
> MOV R7,A


Fantastisch, danke dir!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.