LCD mit KS0108 merkwürdige Fehler

Gast #144528
Lesenswert?

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
Angehängte Dateien:
Gast #144529
Lesenswert?

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
Gast #144530
Lesenswert?

@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?
Gast #144531
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren