Forum: Mikrocontroller und Digitale Elektronik LCD Problem bei der Ausgabe einer Dezimalzahl


von Alf (Gast)


Lesenswert?

Hi,

ich habe meinen ATmega8 mit einem LCD verbunden.
Die Ausgabe eines konst. Textes klappt schon, aber bei der Ausgabe einer 
Dezimal-Zahl haperts noch.

Und zwar hab ich folgendes Problem:
Es zeigt mir zunächst den Initialisierungstreifen an, dann folgt die 
Dezimalzahl. Kurz darauf aber kommt wieder der schwarze Streifen. wenn 
ich das LCD in einem stumpfen Winkel betrachte, kann ich darunter noch 
die Zahl lesen.

Weiß jemand, woran das liegen könnte?

von Peter D. (peda)


Lesenswert?

Alf wrote:
> Die Ausgabe eines konst. Textes klappt schon, aber bei der Ausgabe einer
> Dezimal-Zahl haperts noch.

Dann ist ein Fehler in Deinem Code.

Da Du aber den Code nicht zeigst, kann ich Dir nur nen funktionierenden 
Code zeigen:

Beitrag "Formatierte Zahlenausgabe in C"


Peter

von Alf (Gast)


Angehängte Dateien:

Lesenswert?

Oh, OK danke aber er ist in Assembler.

von pillepalle (Gast)


Lesenswert?

moin

rjmp loop - und die ausgabe geht mit irgendwas was noch in den 
temp-registern
steht weiter.

besser wäre
loop:
rjmp loop   dann würde das prg. dort erstmal stehen bleiben.

oder das label loop ein paar zeilen vor -  sodas das Temp1
wieder mit dem Wert der ausgegeben werden soll initalisiert wird und das 
Display gelöscht ,Cursor auf Home usw.usw.

von Michael U. (amiga)


Lesenswert?

Hallo,

rcall lcd_init
rcall lcd_clear
rcall lcd_home

ldi temp1, 125
loop:
lcd_number:
....

wohin soll denn Deiner Meinung nach das

   ret                    ; und zurück

rjmp loop

hier zurück?

rjmp loop wird nicht erreicht, weil nach dem ret der AVR mangels 
sinnvoller Rückkehradresse auf dem Stack abstürzt und vermutlich ganz 
von vorn anfängt...

ret beendet eine mit rcall aufgerufene Subroutine, die gibt es hier aber 
garnicht.

Gruß aus Berlin
Michael

von holger (Gast)


Lesenswert?

>Oh, OK danke aber er ist in Assembler.

Und wieso heisst dein Code dann Code.txt?
Müsste das nicht Code.asm sein?

Wie kommt es eigentlich zu diesem merkwürdigen
Phänomen das die Originaldateiendung irgendwie
immer öfter durch "txt" ersetzt wird?

SCNR

von Alf (Gast)


Lesenswert?

>rjmp loop wird nicht erreicht, weil nach dem ret der AVR mangels
>sinnvoller Rückkehradresse auf dem Stack abstürzt und vermutlich ganz
>von vorn anfängt...

OK, habs nun durch das ersetzt:

ldi temp1, 125

rcall lcd_number

loop: rjmp loop

und es klappt, danke :-) Wieder was gelernt


>Wie kommt es eigentlich zu diesem merkwürdigen
>Phänomen das die Originaldateiendung irgendwie
>immer öfter durch "txt" ersetzt wird?

Ja, und? .txt kann doch jeder lesen und man braucht dafür nicht extra 
AVR Studio oder ähnliches öffnen.
Ich verstehe dein Problem nicht. Kann dir doch eigentlich auch egal 
sein, wie ich meine Dateien abspeicher.

von holger (Gast)


Lesenswert?

>Ja, und? .txt kann doch jeder lesen und man braucht dafür nicht extra
>AVR Studio oder ähnliches öffnen.

*.asm kann man auch im Notepad öffnen. Dazu braucht man kein
AVRStudio.

>Ich verstehe dein Problem nicht. Kann dir doch eigentlich auch egal
>sein, wie ich meine Dateien abspeicher.

Ich hab ja kein Problem damit. Hat mich nur halt mal
interessiert wieso man die Originaldatei nicht postet
und dieser erst einen neuen Namen verpasst.

von Peter D. (peda)


Lesenswert?

Alf wrote:

> Ich verstehe dein Problem nicht. Kann dir doch eigentlich auch egal
> sein, wie ich meine Dateien abspeicher.

Wenn Du eine Datei nicht unter ihrem richtigen Typ abspeicherst, machst 
Du es dem Helfenden nur unnötig schwer.

Durch den richtigen Datei-Typ kann man hier im Forum bzw. bei den 
meisten Editoren das Syntaxhervorhebung benutzen, was die Lesbarkeit 
deutlich erhöht.
Bzw. man kann die Datei gleich assemblieren, compilieren oder 
simulieren.

Wenn Dir das egal ist, hast Du wohl auch kein Interesse an der Hilfe.


Peter

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.