Forum: Mikrocontroller und Digitale Elektronik LCD Zeichen invertieren


von Henrik Hessert (Gast)


Lesenswert?

hi,

bin gerade dabei ein LCD-Display-Menü mit einem 16x4 Display und einem
mega16 zu programmieren. hat irgendwer eine ahnung, wie man einzelne
zeichen auf dem lcd invertieren kann, um sowas wie eine positionszeile
zu generieren ?

für eure antworten bin ich im vorraus sehr dankbar.

gruß

henrik

von Andi (Gast)


Lesenswert?

Geht leider nicht.

Gruß
Andi

von Christof Krüger (Gast)


Lesenswert?

Haben einige Controller nicht die Möglichkeit, einzelne eigene Zeichen
zu definieren? Wenn immer nur beschränkt viele "eigene" Zeichen
verwendet würden, dann würde das durchaus doch gehen.

von Benedikt (Gast)


Lesenswert?

Das geht nicht mit normalen Textdisplays, sondern nur mit Grafikfähigen
LCDs...

von Andi (Gast)


Lesenswert?

Man kann bei Text-LCDs 8 Zeichen definieren.
Ist halt schwer zu Hand haben da entweder jede Menüzeile nur aus max. 8
verschiedenen Zeichen sein sollte und jedes mal beim Wechsel einer
"Menüzeile" muß man zwischendurch schnell das CG-RAM neu schreiben
und bei ca. 40µS je Zeichenzeile x 8 Zeilen x 8 Zeichen sind das dann
auch 2,6mS.
Die Zeit ist zwar relativ gesehen nicht die Welt aber die Handhabung
stell ich mir nicht sehr einfach vor.

Gruß
Andi

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

zumal Du dann ein Abbild jedes Zeichens im Microcontroller brauchst, um
es überhaupt invertieren zu können. Denn an die Daten im CGROM des
Displays kommst Du imho nicht ran. Wenn Du den Aufwand so weit treiben
willst, dann kannst Du auch gleich ein Grafikdisplay verwenden. Damit
kann man noch viel mehr anstellen.

Mark

von Andi (Gast)


Lesenswert?

Total vergessen,
Je Zeichen-Byte sind es 2 Zugriffe mit ca. 40µS.
1. Setzen der CD-Adresse und
2. Zeichen-Byte übertragen.

Also insgesammt dann 5mS um 8 Invertierte Zeichen zu senden.

Gruß
Andi

von Henrik Hessert (Gast)


Lesenswert?

hi,

erstens mal thanx@all für die schnellen antworten !

..wie ich sehe sieht es wohl ziemlich mau aus mit dem zeichen
invertieren. werde mir wohl so behelfen müssen, dass ich ich immer alle
zeilen komplett verschiebe, um den eindruck eines scrollings zu
erzeugen. eine zeile würde dann immer die aktive zeile darstellen.

gruß
henrik

von Jens123 (Gast)


Lesenswert?

kann man nciht den cursor setzen???

von Henrik Hessert (Gast)


Lesenswert?

hi,

was meinst du bitte mit cursor setzen ?

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

damit meint er sicherlich, ob Du nicht einfach den Cursor auf die
angewählte Zeile setzen kannst, um die Auswahl zu markieren.

Der Controller vom HD44780 malt als Cursor allerdings einfach nur einen
Block (wie 0xff) über das Zeichen, ohne es zu invertieren. Das ist
erstens nicht so hübsch und vermindert die Leserlichkeit.
Und der Underline-Cursor ist nicht auffällig genug.

Und einfach einen Pfeil (">" o.ä.) davor geht nicht? Kein Platz?

Mark

von Henrik Hessert (Gast)


Lesenswert?

hi mark,

das mit einem pfeil davor hatte ich schon probiert. dies ist zwar eine
lösung, aber irgendwie find´ ich es unsauber.

das mit dem cursorblock sieht noch schlampiger aus.

werde mir wohl mal ein grafikdisplay zulegen.

@mark: ist es viel aufwendiger ein grafikdisplay anzusteuern ?

@jens123: will dich von wegen "schlampig" nicht beleidigen. aber
          ich finde: wenn schon menü, dann auch richtig !
          jedenfalls danke für deine antwort.

gruß
henrik

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

unsauber? Meinst Du? Es sind im A00-Zeichensatz auch nette Pfeile drin,
also besser als nur ein ">". Ist eigentlich eine recht übliche Lösung,
find ich. Aber gut, ist Geschmackssache.
Grafikdisplays sind vom Hardwareaufwand ähnlich, logo.
Was die Software angeht, bist Du wesentlich flexibler, brauchst aber
auch die entsprechenden Ressourcen in Deiner Anwendung. Es gibt
Displaycontroller mit und ohne integriertem Zeichensatz.
Ich hab bisher nur ein HD61830 angesteuert. Da hingen auch schon 2k
CGROM dran (Atari Portfolio LCD-Einheit). Hat mich aber nicht davon
abgehalten, dem Ding eine eigene Propotionalschrift einzutrichtern.
Schau mal, daß Du eine Lib findest, die das nötigste schon enthält. Ich
hab's damals hauptsächlich aufgrund des Lerneffekts alles selbst
geschrieben. Ist auch nicht wirklich schwierig.
Wie kompliziert es im konkreten Fall ist, hängt davon ab, welche
Grafikfunktionen Dein Displaycontroller mitbringt, und was Du noch in
Software machen mußt.

Mark

von Henrik Hessert (Gast)


Lesenswert?

hi,

verdammt vor lauter abc-getippe hab ich glatt vergessen, dass der
zeichensatz ein wenig mehr enthält als z.B. "=>".

...sagte der förster:"ich sehe vor lauter wald keine bäume mehr."

vielen dank mark

p.s.: wir hören vielleicht noch voneinander in sachen grafikdisplay.

gruß

henrik

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

naja, selbst wenn Dir keins der fertigen Zeichen zusagt, kannst Du ja
problemlos zumindest dieses eine selbst definieren.

Mark

von Henrik Hessert (Gast)


Lesenswert?

hi,

nö nö. hab mich vielleicht etwas falsch ausgedrückt. die pfeile vom
A00-Satz sind völlig ok. ich hatte nur nicht mehr drangedacht, daß
noch andere zeichen als ascii existieren.

gruß

henrik

von Profi (Gast)


Lesenswert?

Ich habe die 8 frei verwendbaren Zeichen für die Zeichen mit Unterlängen
(g, j, p, q, y...) verwendet, sieht bedeutend schöner aus, auch wenn bei
manchen Displays zwischen der 7. und 8. Linie ein kleiner Abstand ist.
In der Ausgaberoutine muß man sie abfangen und umcoden.

von Holger Menges (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich verwende für die Menüauswahl immer einen *. Die letzte Zeile
verwende ich als Statuszeile die anzeigt, welche der vier Bedientasten
gerade verwendet werden können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.