www.mikrocontroller.net

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


Autor: Oliver O. (axon)
Datum:
Angehängte Dateien:

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

Autor: Hannes Lux (hannes)
Datum:

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

...

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver O. (axon)
Datum:

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

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.