mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD gibt keine Zeichen aus


Autor: Dietmar Krause (kradi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !

Ich gebs langsam auf ... ich versuche ein (zugegebenermaßem altes)
Display PHILIPS LTN214R-10 anzusteuern.

Die Initialisierung scheint zu klappen. Ich kann den Cursor auf dem
Display sehen und positionieren.

Wenn ich ein Zeichen ausgeben will, wird nichts angezeigt; der Cursor
wandert aber nach rechts !?

Hat da jemand eine Idee ?

Die Routine zum Schreiben ist für Cmd und Data gleich, nur dass halt RS
auf 1 gestellt wird.

Grüße

Dietmar

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quellcode?

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kontrast?

Autor: Dietmar Krause (kradi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... Code muss erst gesäubert werden ... kommt demnächst...


Kontrast ? Ich seh doch den Cursor !


DK

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich würde sagen, das liegt zu 90% an der Adressierung der Zeilen. Beim
Schreiben inkrementierst du zwar die Cursorposition, schreibst aber an
eine undef. Speicherstelle. Mir ist es schon einmal passiert, dass die
Adressierung der Zeilen im Datenblatt falsch war.
Weiters musst du beachten, dass in der Regel die zweite Zeile nicht
direkt an die letzte Adresse der ersten Zeile angehängt wird.

Bsp. 2x16 Display:

    ZEICHEN    = 16,
          ZEILEN     = 2,

    /* DDRAM Adressen fuer den Zeilenbeginn */
    ZEILE_1_ADR_0  = 0x00,
    ZEILE_2_ADR_0  = 0x40,

    /* DDRAM Adressen fuer das Zeilenende   */
    ZEILE_1_ADR_15 = ZEILE_1_ADR_0 + ZEICHEN,
    ZEILE_2_ADR_15 = ZEILE_2_ADR_0 + ZEICHEN,

Autor: Dietmar Krause (kradi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mathias,

danke für den Tipp. Mein Code hängt dran. Es ist eine angepasste
Version des Fleury-Codes (nicht schön aber evolutionär entstanden :-)

Die Aufrufsequenz ist:

  lcd_init();
  lcd_home();
  lcd_putc('A');
  lcd_putc('B');
  lcd_putc('C');

Danach blinkt der Cursor an vierter Stelle ...
Muss ich vor der Ausgabe extra die Adresse setzen, wird nicht an dir
Cursorpos geschrieben ?


Grüße und vielen Dank

Dietmar

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viele Wege der Evolution führten in die Irre, wie man an all den
ausgestorbenen Arten erkennen kann. Deine evolutionäre Entwicklung der
LCD-Initialisierung reiht sich darin ein.

Fang ruhig mal wieder beim Fleury'schen Original an.

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.sprut.de/electronic/lcd/

nach dem schema hab ich auch meine init aufgebaut! hast du auch darauf
geachtet, ob du den 4bit bzw. 8 bit mode verwendest??

Autor: Dietmar Krause (kradi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@A.K.
  Das  Fleuryschen Original zeigte das selbe Verhalten,
  deswegen die Anpassungen um es besser zu verstehen.

@Mathias
   Genau so sieht meine Init und meine Schreibroutine aus; ich
   vermute nun fast, dass der Controller doch etwas anders tickt...

Ich versuchs weiter - vielen Dank allen !


Dietmar

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ein korrekt konfigurierter Fleury nicht funktioniert, dann kann's
eigentlich nur noch die Hardware/Beschaltung sein.

Zu deinem Code: Die ersten paar Initialisierung-Kommandos kann man
nicht per lcd_write absetzen, da lcd_write den 4-Bit Modus voraussetzt,
das Device aber sich im 8-Bit-Modus befindet und daher die beiden
4-Bit-Gruppen als 2 8-Bit-Kommandos interpretiert. So schön die
Sprut-Seite aussieht, an dieser Stelle ist sie etwas mager.

Autor: Dietmar Krause (kradi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arrrrrrrrrrrrrrgh ....

Löten sollte man können RS mit RW gebrückt .......

Shame on me and thanks to all !

Dietmar

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.