standard QSYS Character LCD vs. 16x4 LCD-Modul

OP (Firma: inspired.projects) #3401758
Lesenswert?
• ▲
▼
Hallo,
ich bin gerade dabei an einem DE0-Nano-Board ein altes 16x4 LCD-Modul zu 
betreiben.
Dazu habe ich im QSYS das 'Character LCD' eingebunden und nach einigem 
hin und her, auch über nios-2 ein Beispielprogramm ausgeben können. Bei 
dem von Altera gestellten 'Character LCD' handelt es sich um den nicht 
konfigurierbaren 'Optrex 16207 LCD Controller core' eben für ein 16x2 
Optrex 16207-Modul.

Ich betreibe jedoch ein 16x4-Modul 'TM164AAA' 
http://pdf.datasheetcatalog.com/datasheets2/36/361888_1.pdf

Ich weiß jetzt nicht so recht, ob/wie ich die unteren zwei Zeilen 
beschreiben kann. Die oberen werden mit dem Beispielcode beschrieben.
Da ich es jetzt endlich am Laufen habe, würde ich nur ungern alles 
komplett neu machen ;)

Im Anhang habe ich mal meinen display-code angehängt.
Es geht um die Funktion 'test_lcd()' welche ich in der main aufrufe.

Vielleicht hat jemand ein paar Tipps parat.
Angehängte Dateien:
OP (Firma: inspired.projects) #3401843
Lesenswert?
• ▲
▼
klar ist mir, dass hier die Zeile gesetzt wird:

/* Set Address */
IOWR(LCD_0_BASE, LCD_WR_COMMAND_REG,0x80);

0x80 ==> 10000000 ==> Zeile 1
0xC0 ==> 11000000 ==> Zeile 2

Aus dem Datenblatt ist mir das ehrlich gesagt nicht ersichtlich.
Durch probieren erwies sich 0x00 als Zeile 3

0x00 ==> 00000000 ==> Zeile 3

im Internet habe ich Standardadressen gefunden, aber die treffen bei mir 
leider nicht zu.

DISPLAY POSITION
       1   2   3   4   5   6   7   8   9  10 11 12 13 14 15 16
00 01                                                           0F
40 41                                                           4F
10 11                                                           1F
50 51                                                           5F
Gast #3402153
Lesenswert?
• ▲
▼
Setz doch einfach mal den Cursor-Modus auf Increment und
füll dann Zeichen 0x00 ... 0xF0 ins DDRAM (einfach den
Wert schreiben, inkrementiert wird dann autom.), am Besten
langsam, dann bekommst du die Reihenfolge und auch den
Wert in jeder Zeile/Spalte. Evtl. helfen auch unterschiedliche
Folgen 0x00..0xF0.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.