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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.