LCD gibt keine Zeichen aus

OP #233805
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
Gast #233809
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,
OP #233810
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
Angehängte Dateien:
Gast #233811
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.
OP #233813
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
Gast #233814
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren