Hallo Mehto

Die Herausforderung ist die Handhabung von 2 komplementären Aufgaben.

1. Das LCD mit Daten für die Bildpunkte zu versehen
2. In den Bildpunkten das abzubilden was man anzeigen möchte.

zu 1.: Da das LCD keinen eigenen Bildspeicher hat muß man entweder die Information für die einzelnen Bildpunkte irgendwo ablegen, oder man erzeugt sie zyklisch wie benötigt. Die zeitlichen Anfoderungen sie zeitgerecht zu erzeugen und an das LCD zu schicken mit einem uC ist nur bedingt sinnvoll. Die Daten für die einzelnen Bildpunkte in einen Speicher abzulegen und diese "automatisch" und zeitgerecht auszulesen ist eher sinnvoll und wird in den meisten LCD-Controllern für höhere Auflösungen praktiziert.

zu 2.: Verwendet man einen Bildspeicher, so muß man dort die Information so ablegen, dass diese daten an den LCD gesendet die gewünschte Darstellung ergeben. Das muß passieren und kann nur dann passieren wenn der entsprechende Speicher nicht gerade zur Versorgung der LCD-Anzeige ausgelesen wird.

Bei grafischen LCD's, im Unterschied zu solchen zur Darstellung von Zeichen, muß man die Information für jeden einzelnen Bildpunkt bereitstellen. Im anderen Fall nur den Kode, der LCD-Controller dekodiert diesen und sorgt dann eigenständig dafür die einzelnen Bildpunkte adequat zu setzen.

Die Herausforderung liegt also in dem imperativ das LCD kontinuierlich mit Information für die Bildpunkte zu versorgen und ohne mit der ersten Aufgabe in konflikt zu geraten das darzustellende Bild zu erzeugen und zu pflegen. Die größe dieser Herausforderung, und davon erst einen Teil, hat Mehto mit seinem externen RAM-Baustein schon bemerkt.

Früher hat man, um nicht durch Konflikte beim Auslesen des RAMs für das LCD und dem Zugriff auf den gleichen RAM durch den uC Video-RAM's, oder echte Dual-Port-RAM verwendet. Heute bekommt man so schnelle SRAM's das man diese teueren spezial-RAM's nicht mehr verwendet.

Solltest du, Mehto, dich entscheiden, mit externer Hardware und dem externen RAM-Baustein, diesen Weg weiter zu verfolgen, so würde ich dir empfehlen 2 solche RAM-Bausteine parallel zu schalten, 2 Bänke einzurichten. Der Vorteil, die externe HW liest die eine RAM Bank für den LCD aus, während der uC völlig unabhängig davon den zweiten aktualisiert. Der Vorteil davon ist eine einfachere Logik da keine Arbitration, also Abstimmung wer gerade auf den RAM-Baustein zugreifen darf, uC oder externe HW, und durch ein einfaches Umschalten von einem Bild zum nächsten der neue Bildschirm inhalt erscheint.

Zu bedenken ist dabei allerdings, das man mit einem preiswerten LCD-Controller mit Bildspeicher im IC die ganze externe HW bereits vorhanden ist, die Signale zum Ansteuern des LCD's bereits erzeugt werden, und, es noch eine Reihe von sehr nützlichen und mächtigen Zusatzfunktionen gibt. das ist zum einen die Fähigkeit auch Farb-LCD's mit mehreren Bits pro Bildpunkt, einstellbar, und zum Anderen Funktionen wie z.B. das dargestellte Bild auf dem LCD zusammen zu bauen aus dem Speicherinhalt aus verschiedenen bereichen des Speichers.