mikrocontroller.net

Forum: Compiler & IDEs LCD Ansteuerung komisch


Autor: WorkMännchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich mache LCD Ansteuerung und habe ein Problem. Wenn ich ein Text auf 
Display in der main-Funktion ausgebe, dann erscheinen kryptische Zeichen 
und erst nach dem Reset wird das richtige Text angezeigt. Warum ist das 
so? Was mache ich falsch?

Der Code zur Initialisierung und Ausgabe des Textes auf Display ist 
richtig. Da nach Reset ja alles korrekt angezeigt wird. Aber 
kommischerweise erst nach dem Reset betätigt wird bzw. nach jedem 
zweiten Flaschen des Programmcodes.

Danke für Hilfe!!

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Glaskugel sagt:

Der Fehler liegt in Zeile 473 von lcd.brabbel

Autor: WorkMännchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie meinst du das? :)

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, ich bin Wahrsager (mein Werkzeug ist eine Glaskugel), darum kenn ich 
die von dir verwendete Hardware (LCD Typ, Controller, Programm) 
natürlich auswendig. Darum habe ich auch sofort gesehen dass der Fehler 
in Zeile 473 deines Programms steckt.

Autor: WorkMännchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-)))

LCD von Displaytech Ltd. 202A, 2-zeilig. mit KS0066U Controller.
Die Ansteuerung wird in 4-Bit Mode über Schieberegister betrieben.
Wie gesagt, das kommische ist, dass die Anzeige bei jedem zweiten 
Flashen bzw. jedem zweiten Reset richtig angezeigt wird! ich gebe also 
in der main() eine Text auf Display aus: "Hallo Welt!".
Bei jedem zweiten Reset bzw. Flashen des Programmcodes auf den 
Mikrocontroller (Atmega644 mit 16MHz) wird der Text richtig angezeigt. 
Ich sehe also entweder "Hallo Welt!" und wenn ich Reset drücke bzw. neu 
flashe, dann sehe ich ein kryptisches Text.. drücke ich wieder Reset 
bzw. neuflashen, sehe ich kryptischen Text und so weiter... also scheint 
irgendwie ein Toogle-Verhalten zu sein :-))

Ich weiß nicht woran das liegen kann... habt Ihr eine Idee?

Danke!!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gib dem Display am Programmanfang einfach mal ein bischen
mehr Zeit für seine eigene Initialisierung bevor dein Programm
dann anfängt den LCD Kontroller zu konfigurieren.

Autor: Maxx M. (maxx2206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

da es im laufenden betrieb auch bei jedem 2. durchlauf hapert ist die 
initialisierung vermutlich nicht das problem.

wie sieht es allerdings mit deinen routinen rund um das erwaehnte 
schieberegister aus? wenn da an einer stelle ein fehler im ablauf liegt 
oder was vergessen wurde kann das durchaus bits stehenlassen die dann 
beim naechsten durchlauf muell erzeugen.

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frage(n) zur weiteren Eingrenzung des Problems:

A) Definierten Ausgangszustand sicherstellen:

 Ist das Verhalten nach den Einschalten (Power On) immer identisch?
 Falls ja, wie ist Ausgabe? (Verständlich oder Alt-Ägyptisch?)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WorkMännchen wrote:
> LCD von Displaytech Ltd. 202A, 2-zeilig. mit KS0066U Controller.
> Die Ansteuerung wird in 4-Bit Mode über Schieberegister betrieben.
> Wie gesagt, das kommische ist, dass die Anzeige bei jedem zweiten
> Flashen bzw. jedem zweiten Reset richtig angezeigt wird!

Jau, dann hast Du wohl die Initialisierung nicht lt. Datenblatt gemacht.

Das Schalten von 8Bit nach 4Bit geht schief, wenn man schon im 4Bit ist.

Daher schaltet die Initialisierung lt. Datenblatt erstmal 2-mal auf 
8Bit.


Peter

Autor: WorkMännchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt ist alles sehr komisch. Als ich die Wartezeiten (in ms) etwas 
geändert habe... dann verhält sich die Ausgabe noch anders. Früher hatte 
ich bei jedem zweiten Reset eine richtige Anzeige und sonst kryptisch. 
Jetzt ist die Ausgabe zufällig, einige Male richtige Anzeige, einige 
Male verschobene Anzeige um einpaar Stellen, und einige Male kryptische 
Anzeige...!!!
Alles hat Zufallscharakter!

Komischerweise, wenn ich kein Reset mache, sondern die Spannung am Board 
ausschalte und wiedereinschalte, dann wird am Anfang alles richtig 
angezeigt. Jedoch beim Flashen und Reset verhält sich die Anzeige 
komisch...

Die Wartezeiten die ich verändert habe liegen in ms Bereich. Also auf 
jeden Fall länger als erforderlich. Wenn ich also die Wartezeiten bei 
Initialisierung und Ausgaben ändere, ändert sich das Verhalten des LCDs.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<Schon Fusseln vorm Mund Modus ein>

Initialisierung wirklich lt. Datenblatt gemacht und die Bustimings (tAS, 
tAH,  tDSW, tH, pwEH, tcycE) eingehalten?

<Schon Fusseln vorm Mund Modus aus>


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.