Forum: Mikrocontroller und Digitale Elektronik LCD - Initialisierung ok aber keine Ausgabe


von Oliver O. (axon)


Angehängte Dateien:

Lesenswert?

Hallo!

Was ich benutze:
Atmega32
LCD 4x16 basierend auf HD44780

Ich will mit dem Atmega das LCD ansteuern, nach vielen Versuchen und 
Beispielen im Netz habe ich es auch geschafft das LCD zu initialisieren 
(Display wird gelöscht, Cursor ist sichtbar und blinkt). Doch war die 
Freude nur von kurzer Dauer da ich es nicht hinbekomme ein Zeichen 
darzustellen. Das Display macht einfach nichts mehr nachdem es 
initialisiert wurde. Desweiteren ist mir meine Methode zum Abfragen des 
BusyFlag nicht ganz  geheuer, wenn ich die beiden rauskommentierten 
Zeilen aus dem Programm lasse funktioniert die Initialisierung, nehme 
ich sie ins Programm rein geht nichts mehr.

Ich weiss nicht mehr weiter, da es auch mein erstes Assembler-Prog ist 
habe ich kein Plan worin der Fehler bestehen könnte.
Es wäre nett wenn mir jemand helfen könnte und mein Programm mal 
durchsieht.

von Hannes L. (hannes)


Lesenswert?

Selbst wenn alle Unterprogramme korrekt funktionieren würden (habe ich 
nicht weiter geprüft), bleibt Dein Programm nach einmaligem Durchlaufen 
von Main in Ende in einer nixtu-Endlosschleife hängen. Es tut also 
absolut nix.

...

von Michael U. (Gast)


Lesenswert?

Hallo,

eiegntlich kann Dein Busy-Check garnichts sinnvolles machen, die Daten 
werden vom Display angelegt, wenn E von L auf H geht und bleiben gültig, 
bis E wieder auf L geht. "Bleiben gültig" heißt sie dürfen sich nicht 
ändern, damit sie vom µC in Ruhe übernommen werden können. Eine Änderung 
von Busy wird also auch erst im nächsten E-Zyklus sichtbar. Du taktest E 
aber dort garnicht.

Solange E auf L ist, sind die Displaydatenleitungen im tristate, wenn am 
AVR keine PullUps aktiv sind, liest Du also nur den momentanen Zustand 
einer offenen Leitung ein.

Gruß aus Berlin
Michael

von Oliver O. (axon)


Lesenswert?

@Hannes:

Die Unterprogramme funktionieren, bevor das Prog in die Schleife geht
initialisiert es das Display. Genauso war es gedacht, initialiseren, 
versuchen
was auszugeben und nachgucken ob es funkioniert hat.

@Michael:

Thx für den Hinweis, habe die Methode nochmal überarbeitet und jetzt 
funktioniert's.

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.