Hallo! Ich habe ein graphisches LCD (128x64) mit KS0108 an einem ATmega16 angeschlossen. Funktionierte bis vor kurzem bestens und ohne Probleme. Hab mich bei den Timings auch ans Datenblatt gehalten. Als ich nun die Software um einiges erweiterte, kommt es vor, dass die rechte Hälfte plötzlich um genau 2 Zeilen nach unten verschoben wird. Direkt nach dem Einschalten ist alles in Ordnung. Erst nach einer gewissen Zeit (manchmal länger, manchmal kürzer) springt die rechte Seite runter. Trotzdem funktioniert das LCD noch. Die Anzeige wird aktualisiert und alles läuft einwandfrei, nur eben rechts um zwei Zeilen verschoben. Habe auch ein Bild im Anhang zur besseren Darstellung. Ich kann mir dieses komische Verhalten einfach nicht erklären. Hab bereits an den Signaltimings rumgespielt, es hat sich aber nichts gebessert. Vielleicht könnte es ja auch an der Init-Routine liegen, doch das Display arbeitet nach dem Einschalten korrekt. Hatte jemand schon mal ein ähnliches Problem? Oder weiß jemand, wie man sich das erklären kann? Bei Bedarf poste ich auch den Source Code zur LCD-Ansteuerung und eventuell auch die Init-Routine. gruß, Albert
Hi leider kann ich dir nicht helfen. Aber ich habe mir ach ein fast gleiches Lcd Gekauft und leider ein wenig schwirigkeiten den durchblich zu halten vieleicht kannst du mir ja helfen. Wie initalalisiert man das LCD ? Und wie bringe ich ein Punkt oder Buchstaben auf das Grafikdisplay ? Ich bedanke mich schon im jetzt für deine Hilfe, und freue mich auf eine antwort. (muller_urs@yahoo.de) mit freudlichen Grüssen Urs Müller
@Albert: Scheint eher an deiner Software zu liegen. Könnte es sein, dass du zwischendurch irgendwo einen Speicherbereich verletzt oder so? Kann alles vorkommen. @Urs: Hast du das Datenblatt vom LCD runtergeladen, angeschaut und verstanden?
Obwohl es schon mehr als ein Jahr her ist, hier die Lösung falls jemand ein ähnliches Problem hat: Ich hab eine Routine geschrieben, die mit cli und sei global die Interrupts deaktivieren musste. Aus Versehen hab ich diese Routine auch aus dem Timer-Interrupt aufgerufen. Und somit wurde wie beschrieben nach einer zufälligen Zeit der Timer-Interrupt von sich selbst unterbrochen.
Datenblatt KS0108 Seite 12 unten: 10. Display Start Line Register
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.