www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16x4 LCD nach reset immer 2 zeilig


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe ein lcd a, port a von einem tiny 26.
wenn ich das ganze anschalte läuft alles wunderbar, aber wenn ich einen
reset mache dann wird es im 2 (1 zeilen) modus gestartet.
hatte schon mal jemand ein ähnliches problem??

Autor: michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach einem Reset muss die LCD neu inisalisiert werden. Zudem ist auch
auf die Abarbeitungszeiten der LCD Befehle zu achten, die sind in der
Regel recht lang.
mfg

Autor: Gudrun Stender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz normal, nach dem Reset sind die erste und dritte Zeile schwarz.
Controller initialisieren und dann ist das Display wieder "weiß".
HD4ungrad' Controller sind langsam wie die Sau, also lieber mal ne
Millisekunde warten, dann müsst's passen

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dennoch etwas merkwuerdig...

es koennte sein, dass bei einem RESET der µC schneller kommt, als wenn
du den Strom einschaltest..

Kaltstart / Warmstart

Probiers, wie oben schon gesagt mit eioner Pause vor dem Initalisieren

Gruss Jens

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja... hatte 40ms pause eingebaut aber keine änderung... vielleicht
sollte ich mal eine kleine ewigkeit warten... eine sekunde oder so

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hatte zuerst das ganze vom tutorial übernommen, aber das datenblatt
hat mich dann doch eines besseren belehrt. es ist ein ks0063...
vielleicht doch nicht so wirklich kompotibel zu dem anderen.

die ersten bytes der init waren für das ks0063 wohl anders, weil so
funzt es jetzt wie es soll

      ldi tmp,0xff
      out  lcd_ddr,tmp
           ldi tmp, 0b00000011        ;muss 3mal hintereinander
gesendet   im tutorial st es 0b00000010
           out lcd_port, tmp             ;werden zur Initialisierung
           rcall lcd_enable             ;1
           rcall delay5ms
           rcall lcd_enable             ;2
           rcall delay5ms
           rcall lcd_enable             ;und 3!
           rcall delay5ms
           ldi tmp, 0b00101100        ;4bit-Modus einstellen jenes war
auch anders
           out lcd_port, tmp
           rcall lcd_enable
           rcall delay5ms
           ldi tmp, 0b00101000        ;noch was einstellen...
           rcall lcd_command
           ldi tmp, 0b00001100        ;...nochwas...
           rcall lcd_command
           ldi tmp, 0b00000100        ;endlich fertig
           rcall lcd_command
           ret

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim 44780 ist es an sich egal, was bei den ersten 3 Schreibvorgängen an
D0-3 anliegt, auch danach sind D1-0 egal, aber einige 44780 Derivate
sind eben nicht ganz kompatibel: Philips hat hier z.B. einige Bits für
den integrierten Spannungswandler untergebracht, bei Samsung sind es
eben die Einstellungen für den erweiterten Treiber.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sebastian
Ich habe mal in meinen Code geschaut, und da ist die Initialisierung
viel kürzer, und nicht ganz nach Datenblatt (die ersten 3
Schreibvorgänge lasse ich weg, keine Ahnung warum), aber damit hatte
ich noch nie Probleme:

Wert=#58
LCD
Wert=#13
LCD
Wert=#6
LCD
Wert=#1

Bisher hatte ich damit nur die echten 44780 angesteuert, aber es geht
auch mit dem Displaytech 204A mit KS0066 oder KS0067 (im Datenblatt
werden beide erwähnt)

PS: Der KS0063 ist nur ein Segmenttreiber für das LCD, der hat nichts
mit der Ansteuerung des Controllers zu tun.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so wie es ist funktioniert es jedenfalls. ich damit jedenfalls ganz
zufrieden.
das was mir jetzt noch fehlt ist die calibrierung vom internen
oscillator. läuft mir irgendwie noch zu ungenau.
und dann ist da noch die i2c geschichte mit dem usi ding, wo ich etwsas
ratlos bin

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.