Moin, für ein Projekt, das ich vielleicht später mal vorstellen werde, habe ich bei ebay günstig zwei GLCD 128x64 aus China bestellt. Blöderweise habe ich nicht darauf geschaut, welchen Controller die haben und war dann etwas überrascht, daß die schon fast fertige Firmware für KS0108 nicht lief :-/ Darüber hinaus waren die Ergebisse einer Google-Recherche nach einer ST7920 Lib auch nicht direkt ermutigend. Was solls. Habe ich aus der Not eine Tugend gemacht und selber eine Library für den ST7920 angefangen. Nach ein paar Stunden bin ich jetzt so weit, daß das notwendigste geht und möchte das hier gleich teilen. Womöglich finden sich ja Mitstreiter? Das GLCD ist derzeit mit der parallelen Schnittstelle an einen ATMega328 angeflanscht (Details: siehe hal.h). Das hat gegenüber SPI den Vorteil, daß man das GLCD auch auslesen kann. Ein positiver Aspekt des ST7920 gegenüber dem KS0108 ist, daß er 2KB Framebuffer hat. Da man für 128x64 Pixel aber nur 1KB braucht, kann man double-buffering im LCD machen! Was geht: * LCD im Grafikmodus initialisieren * 3 Zeichenmodi: set, clear, invert * Grafik-Primitive: Screen löschen, Pixel setzen * zwei Screens mit der Möglichkeit, die Screens instantan auszutauschen (st7920_swap()) und der Option, entweder auf den angezeigten (front) oder den unsichtbaren (back) zu zeichnen * basierend auf st7920_putpixel() : horizontale/vertikale Linien, gefülltes Rechteck. Langsam! Was fehlt und definitiv noch kommt: * optimierte Routine für horizontale Linien * basierend auf Einzelpixeln: Linien, evtl. Ellipsen (Bresenham) * Strings mit Fonts a'la Apetech * evtl. Bitmaps (Icons & Co) Gefundene Fallstricke bei Verwendung des ST7920: * alle Schreib-/Lesezugriffe sind für 16 Bit, man muß also immer 2 Bytes auf einmal lesen/schreiben * nach dem Setzen der Adresse zum Lesen muß man einen Dummy-Lesezugriff machen (1 Byte) * der Framebuffer ist logisch organisiert als 16 Worte (a 16 Bit) x 64 Zeilen. Ein 128x64 LCD verwendet aber nur 32 Zeilen im Framebuffer. Die untere Hälfte des LCD klebt rechts am genutzen Teil. Anbei: ST7920 Lib + Demo (in main.c). Die Hardware ist in bewährter Manier in hal.h abstrahiert (der Haufen Makros am Ende) mfg, XL
Who can write code for ST7920 GLCD 128x64 for CODEVISION please urgently for my paper!
Das nenn ich mal frech. Führt sich auf wie der CEO vom Dienst, der Paul g Hallo Stefan, in China habe ich mir ein blaues 128x64 ST7920-Modul persönlich gekauft (umgerechnet ca. 8€, war aber im Nordosten, da ist eher Autoindustrie, kaum Displays). Ich hab das Gefummel von KS108 auf ST7920 mit eigenen Fonts gemacht, aber irgendwohin vergraben. Ich glaube, man mußte die Fontbits neu berechnen (90 Grad), weil der ST die bytes bzw. das word senkrecht zum KS108 oder auch ST7565 hat. Fand ich zu exotisch und deshalb liegt er jetzt auf Halde ;)
werde das vielleicht mal aus Platzgründen ausprobieren^^ Also falls Du es nicht gefunden hast, u8glib unterstützt den st7920 komplett in 8bit und 4-Wire Spi (für SPI muss der richtige Pin rausgeführt sein). Vielleicht ein Speicherfresser aber immerhin klappt alles.
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.