Forum: Mikrocontroller und Digitale Elektronik Frage zu Punktmatrix 2x16 Zeichen


von AVRli (Gast)


Lesenswert?

Hi Leute,

mich würde interessieren ob jemand weiß, wie man eine Dotmatrix Anzeige
vielleicht dazu bekommt das sie NICHT nach der Spannungsversorgung
gleich die erste Zeile voll "ansteuert".

Nach dem anlegen der Stromversorgung soll gleich meine Einschaltmeldung
zu sehen sein und nicht der schwarze Balken.

Hat jemand eine Idee oder einen Tip für mich?

Gruß AVRli

von crazy horse (Gast)


Lesenswert?

Das Problem hatte ich auch mal mit einem besonders peniblen Kunden :-)
Lösung: Kontrastspannung mit einem Transistor umschalten.

von AVRli (Gast)


Lesenswert?

Hi crazy horse,

danke für den Tip! ;-D
Ich dachte man könne da direkt per "Befehl" an das Display was
machen.
Es ist ein kleiner Schönheitsfehler den man dann mit "Verlust" eines
Ausgangs retuschieren kann.

Ach dann lass ich es so wie es ist denn ich habe nur nen 2313
verplant... dann ist der Balken ebend ein "Segment CHECK" ;-D

MfG AVRli

von Benedikt (Gast)


Lesenswert?

ICh versteh nicht was du eigentlich willst. Initialisierst du das LCD,
ist der schwarze Balken weg. Und dazu reichen ein paar Befehle...

von AVRli (Gast)


Lesenswert?

Tcha Benedikt,

nachdem Du die Stromversorgung einschaltest (AVR+DISPLAY an einer
Stromversorgung) erscheint die gesamte erste Zeile eines 2 Zeilen
Displays.
Das zwar nur für einen Bruchteil einer Sekunde aber sichtbar...

ok? ;-)

MfG AVRli

von Tobi (Gast)


Lesenswert?

wenn man das sofort initialisiert sieht man es meiner meinung nach
nicht. oder ich hab zu langsame augen...
mal an die alten anaolg hasen. müsste doch recht einfach gehen sich
eine schaltung zu bauen, die den kontrast nach dem einschalten für ein
paar 100ms runterdreht. digital müsste das doch mit einem monovibrator
oder sowas gehen. naja, vielleicht nur eine verquere idee :)

von Jim (Gast)


Lesenswert?

@Benedikt:
Lies nochmal die Beiträge...

von AVRli (Gast)


Lesenswert?

Die Hardwarelösung die währe es !!! ;-)
Bin kein Hardwarefreak... ;-( sorry...

Also ich habe mal getestet...
Man bräuchte ein +5V für ca. 1Sek nach dem Einschalten der
Versorgungspannung.

Wer weiß wie das geht?

@Tobi
es sieht so aus als ob das noch VOR der Initialisierung auf der Platine
des Displays "entschieden" wird...

MfG AVRli...

von Benedikt (Gast)


Lesenswert?

@Jim
"@Benedikt:
Lies nochmal die Beiträge..."

Habe ich, daher ja die dumme Antwort, bezogen darauf:

"Ich dachte man könne da direkt per "Befehl" an das Display was
machen."


Hardwaremäßig ist das einfach: Einfach der Masseanschluss des
Kontrastpotis mit einem NPN Transistor verbinden, dessen Basis an einem
Port des AVR oder an einem RC Glied hängt. Da der Port beim Reset
hochohmig ist, reicht ein kleiner Pulldown, damit der Transistor
ausbleibt und somit das Display nicht aufleuchtet.

von Mark Hämmerling (Gast)


Lesenswert?

Salut,

also ich versteh die Problematik jetzt auch nicht ganz, ehrlich gesagt.
AVR und HD44780 werden gleichzeitig mit Spannung versorgt? Dann genügt
doch eine entsprechend frühe Initialisierung des Display-Controllers
völlig. Ich hab hier grad sowas neben mir liegen. Der Balken, der nach
dem Anlegen der Spannung auf dem Display erscheint, ist dort überhaupt
nicht sichtbar - auch nicht für den Bruchteil einer Sekunde. Es
erscheint sofort eine Bootmeldung. Die paar ms, die die Initialisierung
dauert, siehst Du nicht. Falls doch, ist Deine Init-Routine zu langsam.

Und selbst wenn... was ist so schlimm daran, daß beim Einschalten kurz
ein schwarzer Balken sichtbar ist? Ich glaub, wenn man mit solchen
Problemen die Zeit totschlägt, hat man irgendwie die falschen
Prioritäten gesetzt... nur meine Meinung.

BTW: Das Display wird hier über SPI und Shiftregister angesteuert, also
noch wesentlich langsamer als es möglich wäre.

Gruß,
Mark

von Matthias H. (Gast)


Lesenswert?

soviel Strom zieht das Display ja nicht, wie wärs denn mit nem
Kondensator gegen Masse, der den Kontrast beim Einschalten
runterdreht.
(Vorschlag von einem, der noch kein Display angesteuert hat :-) )

von Peter D. (peda)


Lesenswert?

Also ich komme für Init + Display Clear auf etwa 25ms und das sieht man
definitiv nicht.

Du initialisierst warscheinlich das Display nicht als erstes, sondern
erst noch nen Haufen anderer Dinge.


Peter

von Sebastian (Gast)


Lesenswert?

Dito hier. Sowohl mein HD44780 als auch mein KS0108-Display initialiere
ich so schnell, dass da kein Balken bzw. beim KS Zufalls-Displaymüll zu
sehen ist. Ich würde es daher eher mal mit einer neuen Init- und
Clear-Routine versuchen.

von AVRli (Gast)


Lesenswert?

Hmm... also ich habe mich an das Tutorial gehalten und initialisiere
direkt nachdem ich die Richtungen der Ports im Ini Abschnitt.

Initial:
  ldi wrH,Low(RamEnd)
  out spl,wrH    ; Stack initialisiert

  ldi wrH,$FF
  out DDRD,wrH    ; PortD Ausgang

  clr wrH
  out DDRB,wrH    ; PortB Eingang

        rcall INITIAL_LCD
  rcall CLEAR_LCD

die INITIAL_LCD und die CLEAR_LCD ist aus dem Tutorial...
Vielleicht hat ja noch jemad eine Idee...

Ich will es nicht dramatisieren... währe nur schön wenn es eine
Möglichkeit geben würde.
Und wenn man an der Soft feilen kann damit es super aussieht ist es
doch ok...
Achja ich versorge das Display Komplett über das STK500 vielleicht
ist das auch das "Problem"... wer weiß...


MfG AVRli...

von Danny P. (Gast)


Lesenswert?

@AVRli: Hast du die delays deinem Quarz angepasst?

gretz
Danny

von AVRli (Gast)


Lesenswert?

@Danny
Hmm ist ein 4MHz Quarz... und ich denke davon geht das Tutorial aus.
Es steht nicht im Quellcode aber zwischen den Zeilen...

Gruß AVRli

von Peter D. (peda)


Lesenswert?

Könnte sein, daß der Programmierprozessor im STK erstmal ne Ewigkeit
Deinen Reset festhält.

Dann mal testweise den internen BrownOutReset anschalten und den Reset
vom Programmierprozessor abklemmen und direkt auf VCC legen.

Als Resetzeit sollte die 16ms-Einstellung reichen.


Peter

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.