Forum: Compiler & IDEs LCD-Testprogramm


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich versuche gerade auf einem ATMEGA16 ein LCD-Display zum laufen zu
bringen (W204B von Reichelt). Leider zeigt das Display keine Reaktion.
Die Anschlüsse sind richtig verkabelt.
Das Programm habe ich von AVR Beginners. Leider leuchtet nur die
Hintergrundbeleuchtung des Displays, es erscheinen jedoch keine
Zeichen.
Bin um jeden Tipp dankbar ^^.

MfG Stefan

von johnny.m (Gast)


Lesenswert?

Hast Du das Display korrekt initialisiert? Schau mal ins Datenblatt des
Displays (ich vermute mal, es handelt sich um eines von Electronic
Assembly) und vergleiche es mit der Initialisierung in Deinem Programm

von Stefa (Gast)


Lesenswert?

Ich bin mir nicht sicher, ob das Display richtig initialisiert wurde.
Muss ich aus dem Datenblatt
(http://www.lcd-module.de/deu/pdf/doma/4_20.pdf) die Funktion Clear
Display ausführen? Oder wie initialisiere ich das Display sonst?

MfG Stefan

von Alex1 (Gast)


Lesenswert?

Hallo,

Auf Seite 4 gibt es Initialisierungsbeispiele (sowohl fuer den 8 Bit
als auch fuer den 4 Bit Modus). Diese kannst Du ausfuehren und musst
dabei die Zeiten beachten. Dann sollte es gehen.

Alex

von Stefan (Gast)


Lesenswert?

Danke für den Tipp. Leider hab ich noch nicht allzuviel mit AVRs gemacht
und bekomm das leider nicht hin.
Ich bin nicht sicher, ob nicht was am Display selbst defekt ist!
Hat einer von euch ein funktionierendes Programm für mich, mit dem er
selbst schon mal ein Display angesteuert hat?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Schau dir mal das stdiodemo in den avr-libc-Beispielen an, da
gibt's einen HD44780-Treiber.  Der hat noch zwei kleine Macken,
die ich kürzlich beseitigt habe, wenn du damit in der dort
beschriebenen Form nicht klarkommst, dann ruf hier nochmal um
Hilfe, und ich mach dir ein Update fertig.

Das Beispiel benutzt sogar einen ATmega16, da musst du also nicht
einmal was ändern.  Guck dir die Doku nochmal an (liegt auf deiner
Festplatte), wie die Verdrahtung vom AVR zum LCD-Modul aussehen
muss.

Vermutlich wird das Beispiel nur zwei der vier Zeilen ansteuern
können, aber das müsste dir ja erst einmal genügen um zu sehen,
ob dein Aufbau funktioniert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

p.s.: Vergiss nicht, die Kontrastspannung zu beschalten!

von Stefan (Gast)


Lesenswert?

Die Kontrastspannung passt sicher.
Mein Problem ist einfach, dass egal was ich mache, die
Displayhintergrundbeleuchtung leuchtet und alle Punkte aufleuchten.
Wenn ich das Demo durcharbeite und auch nur einen kleinen Codefehler
mache, kommt wieder das selbe raus wie bis jetzt, also nichts. Kurz
gesagt, ich will das Display testen, kann ja auch schon bei
Auslieferung kaputt gewesen sein.
Deswegen wäre ich um jedes Programm dankbar, auch wenns nur nen Punkt
ausgibt.

MfG Stefan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Deswegen wäre ich um jedes Programm dankbar

Nu, dann guck dir doch das stdiodemo mal an.  Den UART-Teil
davon kannst du ja einfach ignorieren, auch ohne dem gibt es
auf dem LCD ein "Hello world!" aus.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe versucht deinen Rat zu befolgen:
Habe die AVR-Lib-Dokumentation zu stdio gelesen und wollte dann aus dem
Codeschnipsel mit Hilfe eines einfachen Makefiles ein Hex-File
generieren. Daraufhin habe ich jedoch Probleme beim Compilieren
bekommen (Siehe Bild LCD.jpg im Zip-Anhang).
Noch eine Frage dazu: Wenn alles funktioniert, wie es soll, schafft es
dann die AVR-LIB, wenn man sie im Code einbindet, dass man mit Hilfe
dieses simplen Codes etwas auf einem Display ausgibt?? Wenn ja, dann
Respekt vor den Programmierern der AVR-LIB. Offenbar gehörst du dazu,
soweit http://savannah.nongnu.org/projects/avr-libc/ die richtige
Adresse für das AVR-Lib ist.
Bitte schaut euch mal mein Makefile an, kann sein, dass es das Problem
ist.

MfG Stefan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hmm, du solltest nicht nur ein Codeschnipsel aus der Doku
schneiden, sondern bitte das komplette stdiodemo benutzen.
Das sind schon paar Dateien.  Du hast sie auch auf deiner
Platte stehen (hoffe ich), im Internet findest du das hier:

http://www.nongnu.org/avr-libc/user-manual/group__stdiodemo.html

Sorry, ich hab' keine Lust, mir eine Zip-Datei nur für ein JPEG
auszuwickeln, zumal das keinen Sinn hat.  Erstens komprimiert
JPEG bereits, sodass das Zip nichts bringt, zweitens wäre für
reine Pixelhaufen GIF oder PNG viel sinnvoller (die haben lossless
compression, JPEG ist lossy compression und hat nur für Fotos
Sinn), drittens kann man Fehlermeldungen als Text kopieren.
Klingt jetzt vielleicht hart, aber bedenke bitte, dass ich das
nebenbei während meiner normalen Arbeit erledigen muss hier.

von Stefan (Gast)


Lesenswert?

Hi,

erstmal Vielen Dank für die Info, dass man ein JPG nicht weiter zippen
kann. Ich muss schon sagen, dass mich dass verwundert hat, dass man ein
komprimiertes Bild nicht weiter komprimieren kann ^^.
Nur so als Tipp: Man kann Zip-Dateien auch dazu benutzen, um mehrere
Dateien als Dateianhang hochzuladen.

Genug der Ironie. Hab das Display jetzt zum Laufen gebracht.

Trotzdem besten Dank für die Hilfe, ich denke ich weiß jetzt in Zukunft
dass ich zuerst mal in der AVR-Lib suche, bevor ich poste.

MfG Stefan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Nur so als Tipp: Man kann Zip-Dateien auch dazu benutzen, um
> mehrere Dateien als Dateianhang hochzuladen.

Kann man, aber es ist halt mühselig für denjenigen, der sich das
angucken muss.  Wenn es sich um eine simple Fehlermeldung handelt,
ist ein cut&paste des interessanten Textteils davon sehr viel
einfacher zu lesen.  Du verlagerst mit deiner Variante nur die
Arbeit von dir auf denjenigen, von dem du Hilfe erwartest -- und
das finde ich unfair.

Aber schön, wenn dir das Beispiel geholfen hat.  Funktioniert
denn dein LCD damit jetzt?

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.