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
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.
Das geht nicht mit normalen Textdisplays, sondern nur mit Grafikfähigen LCDs...
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
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
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
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
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
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
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
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
Salve, naja, selbst wenn Dir keins der fertigen Zeichen zusagt, kannst Du ja problemlos zumindest dieses eine selbst definieren. Mark
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.