Forum: Mikrocontroller und Digitale Elektronik LCD mit KS0108 merkwürdige Fehler


von Albert (Gast)


Angehängte Dateien:

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

von Urs Müller (Gast)


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

von Philipp Burch (not logged in) (Gast)


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?

von Albert (Gast)


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.

von Dietmar (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.