mikrocontroller.net

Forum: Compiler & IDEs Selbst definierte Charakter (Zeichen) auf LCD ausgeben


Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Bekanntlich kann man bei Standard-LCD's 8 eigene Zeichen definieren,
und dann auch zur Anzeige bringen.

Ich würde das gerne mit der LCD-Library von Peter Fleury ausprobieren.

Kann mir jemand ein paar Tips geben, wie ich generell vorgehen muss?

Danke
Toni

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
primär Datenblatt lesen ;-)

mit write Cntl die Bitmuster an die richtigen CG-Adressen schreiben und
mit write Data (0 .. 7) am Display darstellen.

grüsse leo9

Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, Leo9

Datenblatt lesen ist wirklich gut !
Habe versucht daraus klug zu werden.

Ich weiss nun:
=============

Ab Adresse hex40 muss ich pro Zeichen 8 byte mit dem gewünschten Muster
reinschreiben (also 1. freie Zeichen von hex40 bis hex47, 2. Zeichen
hex48 - hex4f, etc.).

Anzeigen sollte ich die so definierten Zeichen mittels
"lcd_putc(char c)" => 0-7 für char c, so stell ich mir das vor !

Die so definierten Zeichen verliere ich, sobald die Versorgungsspannung
nicht mehr anliegt.

Ich weiss nicht:
===============

Wie kann ich die Bytes ab Adresse hex40 reinschreiben. Braucht es ein
spezielles Kommando zum Ansteuern des sog. CGRAM's.

Kann ich das alles mit den Library-Funktionen von Peter Fleury machen
?

Danke für weitere Tips.

Toni

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Toni,

die lib von Peter kenn ich nicht, aber es gibt das RS-Signal (Register
Select) welches zwischen Data und Instruction unterscheidet.
Entweder kann man es vor lcd_putc setzen oder es gibt einen eigenen
Befehl. Wie setzt du Cursorposition und andere Displaysettings, das
sind nämlich auch Schreibzugriffe aufs Instruction-Register.

Die selbstdefinierten Zeichen sind übrigends nicht nur bei
Spannungsverlust, sondern auch nach jedem init neu zu definieren.

grüsse leo9

Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo leo9

Die Lib von Peter Fleury ist hier runterzuladen:
http://homepage.sunrise.ch/mysunrise/pfleury/avr-s...

Cursor-Posi setzen und vieles Weitere ist in dieser Lib drin. In der
Beta Version kann man sogar die Port-Pins flexibel wählen!

Nun versuch ich aber mal, ob ich es fertig bringen kann, mit der
Funktion "void lcd_putc(char c)" auch Befehle an das LCD-Modul zu
schicken. Das wäre super !

Gruss
Toni

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau doch einfach in die Doku von der lib.
Das Zauberwort lautet: lcd_command ;-)


grüsse leo9

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

Bewertung
0 lesenswert
nicht lesenswert
Lieber leo9

Das werde ich tun, muss aber zuerst alles neu installieren. Weiss nun
aber dass es sich lohnen würde !

Habs aber auch so fertig gebracht.

Deine Idee mit lcd_putc() hat mich daran erinnert, dass ich ja über
einen ganz normalen und vielseitig ansprechbaren PORT auf das LCD
zugreife.

Im Anhang meine Lösung, die ich mal schnell mit meinem bestehenden
Aufbau und AtmanAVR gelöst habe.

Funktioniert wunderbar.

Schöne Ostern
Toni

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.