Dieser Thread ist jetzt ein Entwicklungs-"Tagebuch" für DOG-Grafik-Displays, angebunden an einem Atmega-Microcontroller, programmiert in C.
Aktuelle Version der Lib inkl. Font befindet sich im Anhang. Bei Fragen, Anregungen etc. bitte hier reinposten.
Sämtliche Einstellungen werden in der dog_glcd.h vorgenommen, inkl. SPI (Hardware). Wird ein Controller ohne Hardware-SPI benutzt, müssen eigene Routinen eingebaut werden.
habe mir das Datenblatt angesehen, kenne das Display nicht. CPOL ist wohl richtig. Es wird das Bit aber auf die steigende Flanke gelesen. Daher musst du CPHA auch noch auf 1 setzen. Hast du CS1 und CS2 berücksichtigt.
du hast recht, da fehlt noch CPHA - funktioniert aber leider trotzdem nicht. CS1 habe ich berücksichtig, so wie ich das sehe, muss das während der Übertragung einfach nur low sein. CS2 gibt es an dem Display nicht, zumindest gibt es keinen Pin dafür.
Edit: Bin schonmal ein Stück weiter. CS war interessanterweise high obwohl es active low sein sollte. Ausserdem hat der Reset-Pin irgendwie nicht funktioniert, nach ich auf PortC gewechselt bin, klappt das auch. Ich bin jetzt immerhin soweit, dass die Kontrastspannung erzeugt wird, das ist ja schonmal ein Fortschritt :P
Edit2: Ok, mit der Display All Points-Funktion konnte ich auch den Rest erfolgreich in Betrieb nehmen. Jetzt fehlen nur noch Schrift und Grafikfunktionen, dann stell ich die Library online
So, ich bin sehr viel weiter gekommen. Ich kann jetzt problemlos den Grafikspeicher beschreiben und habe auch schon eine Textroutine eingebaut, so dass man 8 Pixel hohen Text direkt in die Pages reinschreiben kann. Die Library werde ich auch entsprechend mit einer freien Lizenz auf meine Seite zur Verfügung stellen.
Jetzt hat sich aber noch eine eher esoterische Frage aufgeworfen:
Mal angenommen, ich möchte gerne Grafikfunktionen einbauen. Jetzt wäre es ja wahrscheinlich nicht so ein großes Problem, Punkte und Linien anzuzeigen. Da man aber den Grafikspeicher nicht auslesen kann (Die SPI-Kommunikation läuft nur in eine Richtung), würde man ja alles überschreiben, was sich in derselben Page (8 Pixel Höhe) befindet.
Gibt es ausser einem im Ram des Mikrocontroller befindlichen Framebuffer noch eine andere Lösung? Wenn nein, könnte man sich die Grafikfunktionen ja schon fast schenken. Bei dem 132x32-Display stehen ja schon 528 Byte Daten an, das machen viele AVRs schon gar nicht mehr mit.
Andererseits sind die Displays für Text wirklich gut geeignet, da man auch Zeichen mit variabler Breite einbauen kann. Das kombiniert mit dem guten Kontrast ist macht den Text wirklich gut lesbar.
Durch Probleme mit dem Steckbrett habe ich auf die Displayplatine jetzt noch einen Tiny44 gequetscht, der mit dem internen Oszillator auf 1MHZ läuft, trotz PWM-Steuerung der Beleuchtung hat der Controller noch mehr als genug Luft.
Hast Du die .lib schon fertig ?
Ich bräuchte so ein Display für mein nächstes Projekt, weil ein KS 0107/08 Display von der Bauform her zu groß ist.
Deshalb möchte ich es mal mit einem DOGL 128x64 Zeichen Display versuchen.
Ich bräuchte eigentlich nur Text, den aber möglichst groß !
die Lib ist immer noch auf dem "alten" Stand, da ich z.Z. leider keine Zeit habe diese weiter zu entwickeln. Das 128x64-Display sollte funktionieren, es müssen nur die defines für Breite und Höhe angepasst werden. In Sachen großen Text wirst du mit der Library aber nicht glücklich werden, die Höhe ist auf 8 Pixel begrenzt.
Ich schreib mir mal nen Zettel und versuch das heute Abend noch hochzuladen, versprechen kann ich aber nichts :/
Ich hab die Lib mal hochgeladen, befindet sich im Eingangsposting. Viel Spaß damit, vielleicht bekommst du dein Display ja zum laufen. Bei Fragen oder ähnlichem, bitte hier posten, KEINE PN schicken!
Für die Nutzer, die meine Library runtergeladen haben: Feedback wäre ganz toll, das ist meine erste Entwicklung, die ich an die Öffentlichkeit gelassen habe
Lesezeichen