Ich war ja selber schon oft froh, dass ich hier in der Codesammlung hilfreiche Routinen für meine Vorhaben gefunden habe. Das hatte mir eine Menge Zeit und Ärger erspart. Es gibt ja etliche Punktmatrix-LCD-Displays mit KS0066-Controller zu kaufen. Der Controller wird als HD44780-kompatibel beschrieben. Das ist er auch, aber nur größtenteils. Gerade in der Initialisierung und in den Timings unterscheidet er sich jedoch. Somit klappt's mit den original HD44780-libs oft nicht. Also hab ich auf Basis der lcd-lib von Peter Fleury eine KS0066-Library geschrieben, abgespeckt auf den ausschließlichen Betrieb im 4-bit-I/O-Modus (was anderes mach ich nie). Gebaut und getestet mit: Compiler: AVR-GCC 4.3.2 mit gnu99-flag, AVR-LIBC 1.6.2 Entwicklungsplattform: Kontrollerlab unter Kanotix (Linux-Debian 5.0) AVR: Atmega8, 8 MHz int. RC-Osz., Fuse-Bytes: Low:0xD4 High:0xE9 Display: Lehner Dabitros YL#202-17/A7 (2 x 20 Z), baugleich mit DEM20231 (gibt's z. B. bei www.elpro.org) Pin-Zuordnung: PortD, Pins PIND0 bis PIND6, wird in der lcd_ks0066_4bit_io.h gesetzt. Library als ZIP angehängt, bestehend aus .c und .h-File mit einer Beispielanwendung in der main.c. Viel Spaß damit, vielleicht hilft's ja dem einen oder anderen weiter. Rückmeldungen über erfolgreiche Anwendung, Fehler oder Verbesserungen gerne ... :) Grüße Jürgen
Hallo, bei mir funktionierts nich wirklich :-( Display ist ein nicht näher spezifiziertes, aber KS0066F drauf (2x24Z). Habs erstmal mit nem 2313 (8MHz extern) probiert, aber mit dem sollte es doch auch gehen, oder? Port hab ich geändert, aber Display zeigt nichts an (nur den Balken in der 1. Zeile, Spannung stimmt also)... Die LEDs die ich testweise mit an den Port gehängt habe blinkern auch fleißig vor sich hin, also scheint der Code zu laufen... Vielleicht eine Idee wodran es noch liegen könnte? Gruß Nils
peinlich, aber hat sich erledigt... hatte die datenleitungen falsch verdrahtet... Funktioniert jetzt einwandfrei! gruß Nils
Hi Nils ... na fein :) Was ich noch beobachtet hab: Der KS0066 mag's nicht wenn, man ihm nach Anlegen der Betriebsspannung die Initialisierungssequenz mehr als 1x verpasst. Dann funktioniert nur die erste Zeile, solange bis die Betriebsspannung unterbrochen und das ganze frisch gestartet wird. Ist mir aufgefallen, als ich eine Anwendung weiterprogrammiert hab. Nach jedem neuen Flashen des mega8 ging imemr nur die 1. Zeile. Da muss ich den AUfbau jedes mal aus- und wieder einschalten.
bei mir klappt es leider nicht. Ich habe ein YL # 162 -37 /E7 von Lehner Dabitros mit KS0066. (Unter dem Aufkleber von Lehner steht : AMPIRE 162C-D REV.A) und das habe ich nach Erwerb mit Deinem Code @ __juergen probiert, leider ohne Erfolg.(Es waren nur dunkle Blöcke in Reihe 1 zu sehen.) Dann aus Verzweiflung den Code aus dem AVR-GCC Tutorial getestet, der funktioniert ohne Probleme. Trotzdem hab Dank für das Posten des Codes.
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.