Forum: Mikrocontroller und Digitale Elektronik LCD porb. was ist da los ?


von Till H. (mohman)


Lesenswert?

Hallo, ich hoffe ihr könnt mir weiter helfen :)
ich hab an meinem Mega32 ein LCD im 4bit Modus im Betrieb! Funzt soweit 
auch alles super! nur wenn ich den controller spannungslos machen, kommt 
es manchmal vor, dass das LCD nichts mehr anzeigt! Ist aber nicht immer 
so, ganz wirkürlich!
Jemand ne idee, wo das problem liegt !?
Erst nach einem reset des controllers arbeitet das lcd wieder!
controller bleibt aber nicht stehen, die anderen programmierten 
funktionen werden weiter abgearbeitet!


Danke :)

von Einer (Gast)


Lesenswert?

>nur wenn ich den controller spannungslos machen
Wie meinen?

von Timmo H. (masterfx)


Lesenswert?

>controller spannungslos machen
Meinen du den ATmega oder den LCD mit spannungslos machen? Denn wenn der 
AVR Spannungslos ist können die weiteren Funktionen ja nicht gehen.

von mohman (Gast)


Lesenswert?

Hallo, sobald ich die ganze schaltung spannungslos machen und 
anschließend wieder in betrieb nehme

MfG

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das kann ein Hinweis darauf sein, dass dein Software-Reset des 
LCD-Controllers durch den AVR zu einem ungünstigen Zeitpunkt kommt. 
Eventuell ist der Power-Up-Reset des LCD-Controllers noch nicht 
abgeschlossen. Warte mal länger mit deiner eigenen LCD-Initialisierung.

von mohman (Gast)


Lesenswert?

danke, werd das mal testen

von derLars (Gast)


Lesenswert?

Hier gibt es soviel zu LCDs, aber irgendwie konnte ich des Rätsels 
Lösung nirgendwo finden. Also nicht gleich steinigen, wenn ichs zum 
x-ten Male frage :o)

Habe ich 16x1 Display (161A) und es funktioniert alles eigentlich auch 
schön, bis auf das, dass nur die ersten 8 Zeichen geschrieben werden.

Laut Datenblatt ist ab Adresse 40H im Display Data-RAM die Stelle 9, 
aber selbst sowas wie

...
LCD_data('8')
LCD_command(0b11000000)
LCD_data('9')
...

klappt nicht.
Hab mit Sicherheit irgendwo einen kleinen Denkfehler, aber komme auch 
nach vielen Tüfteleien nicht drauf.

Hab auch irgendwo gelesen, dass man ein einzeiliges 16-Stellen Display 
als zweizeiliges initialiert und dann automatisch die 16 Stellen 
geschrieben werden, das stimmt aber nicht! :D

Vielen Dank schonmal,
Lars (nicht hauen!)

von Peter D. (peda)


Lesenswert?

Du mußt den 2-Zeilen Modus setzen, wenn es als 2*8 organisiert ist.

Gib doch einfach 128 Bytes aus (mit 1s Pause), dann weißt Du, ab welcher 
Position die 2. Hälfte erscheint.


Peter

von derLars (Gast)


Lesenswert?

Hab den 2-zeilen-Modus mit 38H gesetzt, nur gibt er mir dann gar nichts 
mehr aus. Auch nicht wenn ich lcd_home() vorher aufrufe :(
Display bleibt leer!

von Karl H. (kbuchegg)


Lesenswert?

Dann wird dein Display wohl nicht so organisiert sein :-)

Nochmal: Peter hats schon vorgekaut.
Schreib dir ein Programm, dass "ABCDEFGHIJKL....XYZ" ausgibt. Von mir 
aus mehrfach. Danach schaust du auf dein Display, welche Zeichen in der 
zweiten Hälfte auftauchen. Kleb erst mal nicht an den 16 Zeichen oder 
2*8 Zeichen. Irgendwo im Display RAM werden schon Zellen sein, da an die 
2.te Hälfte des Displays gemappt werden. Die musst du finden.

von derLars (Gast)


Lesenswert?

Alles sehr seltsam!

Wenn ich nen elend langen String ausgebe, dann kommen 8 Zeichen und beim 
2. Durchlauf kommen 8 Zeichen ab Zeichen 80,81,..... beim 3. Durchlauf 
dann ab 160,161,....

Aber immer nur die ersten 8 Stellen auf dem Display :D

Ich geb gleich auf für heute, vielen Dank für euren Rat! :o)

derLars

von Peter D. (peda)


Lesenswert?

derLars wrote:
> Hab den 2-zeilen-Modus mit 38H gesetzt, nur gibt er mir dann gar nichts
> mehr aus.

Ähem, benutzt Du nicht den 4-Bit Modus?

38H setzt jedenfalls auf 8-Bit.


Peter

von derLars (Gast)


Lesenswert?

Nein, ich benutze den 8-bit Modus! Mir egal ob 4 oder 8 Kabel :))))

von Peter D. (peda)


Lesenswert?

derLars wrote:
> Nein, ich benutze den 8-bit Modus! Mir egal ob 4 oder 8 Kabel :))))

Genau deshalb mag niemand das Hijacken eines älteren Threads.


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.