mikrocontroller.net

Forum: Compiler & IDEs Problem beim ansprechen eines LCDs über MEGA8


Autor: David Zacharias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Steige gerade in die C Programmierung von Mikrokontrollern ein und habe
da ein Problem mit dem Ansprechen eines LCDs. Es werden immer nur
schwarze Balken ausgegeben... ist in meinem Quellcode etwas falsch oder
bin ich einfach nur zu dumm?

Habe mir folgendes Board besorgt:
http://www.e-lab.de/components/lcd_and_keyboard.html   und davon das
"Mega8 Terminal Board CAN"
und verwende den WinAVR zum programmieren.

Autor: Kiwi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst mal in Datenblatt nachschlagen. In der Regel kann man den
Kontrast eines Displays mit Hilfe eines Potis einstellen. Es könnt
sein, dass durch das auf GND legen dieses Pins, der Kontrast immer
maximal ist und somit jede Ausgabe als schwarzer Balken erscheint.

Autor: David Zacharias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den verdacht habe ich mittlerweile auch. Es gibt zwar ein Poti auf dem
oard aber egal wie man das dreht, am Kontrast ändert sich nix :(
Obwohl laut Messgerät verschiedene SPannungen am Display ankommen ?-)

Autor: Klaus K. (leo9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo David,
ich habe zwar den source und die Schaltung nur diagonal gelesen aber
ich denke der Fehler liegt in der SW. In der init_display gehen alle
Befehle ins Leere (das LCD ist ja wohl nur mit vier Bit Bus
angeschlossen) bzw. gibst du vier mal "0000" aus. Ich finde auch
keine Ausgabe um das LCD in 4 Bit Modus zu setzen (0010xxxx).

grüsse leo9

Autor: David Zacharias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tjo, hätte vielleicht die verkabelung angeben sollen :)

Die 4 Datenbits liegen an PD0-PD3 an
Das Enable-Bit liegt an PD4 an
Das RS-Bit geht über PD5
R/W läuft über PD6

Bei der Verkabelung sollte das ganze eigentlich klappen oder mach ich
da nen grundlegenden Fehler??
die Initalisierung hab ich aus dem Datenblatt des Displaycontrollers.

Autor: Klaus K. (leo9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..auch so herum klappts nicht:
Du schickst erst 00000011 (->4Bit Mode) an das LCD (welches zu diesem
Zeitpunkt noch 8 Bit "spricht"). Sind D0..D3 am LCD mit GND
verbunden, sonst könnte es sein dass das LCD xxxx0011 "sieht". Sprich
der erste Befehl könnte undefiniert sein.

Danach schickst du nochmals 00000011 (kommentierst es aber als Disp
on/off statt wie vorher Function set) mit einem Enable Puls an das
(falls der vorherige Befehl geklappt hat) nun 4Bit sprechende LCD. Dies
wartet nun auf den nächsten Enable Puls um einen ganzen Befehl zu
bekommen. Zusammen mit 00000001 (Disp clear) hat das LCD nun
00110001 "gelesen". -> was sicher Unsinn ergiebt.

Entry Mode Set ist dann wieder ein "erster" Enable Puls und das LCD
wartet wieder auf einen zweiten. Und ab nun sendest du mit daten_senden
und das LCD setzt jedes Byte aus vier Bit der letzten und vier Bit der
aktuellen Daten zusammen.

Ich hoffe das war einigermaßen verständlich?

grüsse leo9

Autor: David Zacharias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ich verstehe was du meinst. werde das mit dem Ground und die ganze
initialisierung nochmal prüfen.
Die Kommentare können unter umständen nicht ganz dem entsprechen was
tatsächlich dort geschieht, hab da relativ viel dran rumgebastelt...

Werde mich Melden was die analyse ergeben hat :)

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.