www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eigenes Zeichen auf LCD definieren


Autor: Matze (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche jetzt schon seit einigen Stunden ein eigenes Zeichen auf 
einem standart 27*4 LCD darzustellen.
Leider sehe ich mittlerweile den Wald vor lauter Bäumen nicht mehr. Mein 
Quelltext habe ich mal angehangen. Ich benutze einen Mega16 mit 16MHz. 
Ansonsten funktioniert das Display ohne Fehler, außer das mein eigenes 
Zeichen nur Unsinn ist, desshalb denke ich auch nicht das es ein Timing 
Problem ist.
Meine Pin Belegung: E1 E2 RS RW D3 D2 D1 D0

Ich muss doch nur den CGRAM Adresse setzen. Also Ein Kommando setzen mit 
den Daten 0b01nnnzzz
n=Nummer des Zeichen(0...7)
z=Zeilennummer(0...7)
Und anschließend ein Zeichen senden(so als würde ich einen Buchstaben 
aufs Display schreiben wollen) mit meinen Daten. Ich will nur die linke 
Hälfte des Displays "ausmalen", also sende ich 8mal 00011000. Ich sehe 
leider keinen Fehler.

Hat einer von euch eine funktionierendes C-File für das Schreiben eines 
eigenen Zeichens. Ich habe bisher nur ASM gefunden und die sahen meiner 
Meinung nach meiner Vorgehensweise sehr ähnlich.

Autor: LCD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau da mal nach.
Die haben Datenblätter wo das genau beschrieben ist.

http://www.lcd-module.de/

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die Seite. Leider geht es immer noch nicht. Ich hab 
mir die Datenblätter angeschaut und die machen es eigentlich so wie ich, 
aber irgendwie will es nicht gehen.
Ich habe jetzt eine 8MHz Taktfrequenz genommen->Keine Veränderung.
Ich habe alle 128 CGRAM Bytes mit 0b00011000 beschrieben mit dem 
Ergebniss: Beim 0.Zeichen stimmen alle Zeilen bis auf die letzte. Alle 
anderen Zeichen sind Quatsch.
Kann das sein das der RAM defekt ist (es ist ein LCD von Pollin)?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matze

Du musst die Zeichenadresse * 8 fürs CGRAM setzen.
Grund: ein Zeichen besteht aus 8 Zeilen.

Zeichen 0  CGRAM Adressen 0-7
Zeichen 1  CGRAM Adressen 8-15
.
.
.

Und es reicht wenn du die Start-Zeichenadresse einmal sendest.
Dein Display zählt beim senden der Bytes dann automatisch hoch.

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum ersten Teil deiner Antwort:
Ja danke aber das habe ich ja gemacht. Ich habe alle 64 Bytes 
(8Zeichen*8Zeilen) mit den selben Daten beschrieben, bekomme aber nur 
Müll wenn ich es auslese.

Zum zweiten Teil:
Ich habe es mal versucht die CGRAM Adresse nur einmal zu setzen und die 
Daten fortlaufend zu schreiben (Der CGRAM wird ja automatisch 
incrementiert) und jetzt geht es auf einmal. Danke dir für diesen Tipp. 
Eigentlich hätte es zwar vorher auch gehen müssen, aber egal, hauptsache 
es geht jetzt.

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.