Forum: Mikrocontroller und Digitale Elektronik Problem mit LCD


von Ste (Gast)


Lesenswert?

Hallo!!

Tut mir leid, das ich euch mit dem schon 1000fach durchdiskutierten 
Problem belästige, aber in den anderen Beiträgen habe ich nichts 
gefunden:
Folgendes Problem, Ich verwende einen ATmega8, daran habe ich wie im 
Tutorial beschrieben den LCD angeschlossen, ausser an die D-Port-Pins an 
die B-Port-Pins. Die Software habe ich auch vom Tutorial genommen, habe 
aber alle PORTD durch PORTBs und alle DDRD durch DDRBs ersetzt.
Wenn ich dem Ganzen nun Saft gebe, dann habe ich in der ersten Zeile 
einen schwarzen Balken in der zweiten nicht (verwende ein 2*20 er LCD 
welcher HD44..... kompatibel ist).
Das deutet darauf hin, dass der LCD nicht initialisiert wird. Ich habe 
bereits alle Leitungen geprüft (wenn ihr meint, es liegt daran, dann 
mach ich das nochmals). Könnte es auch an der Software liegen? Sind die 
Delays zu kurz?

Ich habe keinen externen Oszillator angehängt, habe auch nichts an den 
Bitsgeändert die für das Taktsignal verantwortlich sind, dann sollte 
doch der Interne Takt von 1MHz eingestellt sein??

Könnte mir jemand helfen??
Danke!!

von Nik Bamert (Gast)


Lesenswert?

Hallo Ste!

Wie hast du den pin zur Kontrast einstellung beschaltet?
(ist meistens pin 3)

Dort kann man eine Spannung zwischen 0...5V reinlassen.
So viel ich weiss, ist 0V am dunkelsten(am besten lesbar).

MFG
Nik

von Ste (Gast)


Lesenswert?

Hallo!

Das ist es nicht, habe es an einem Poti, wie im Tutorial. Habe dort drei 
Einstellungen getestet, einmal auf Masse dann mal etwa in der Mitte und 
dann noch auf 5V, danke trotzdem!

Hat jemand eine LCD-Ansteuerroutine für einen Atmega mit 1 MHz takt, die 
er mir schicken kann, um auszuschliessen, dass es an der Software 
liegt??
Wäre genial!!

Danke

von Georg (Gast)


Lesenswert?

hi,


hatte das gleiche problem wie du.

Ich kann dir sagen dass es an der Software liegt.
Wenn die erste zeile komplett mit schwarzen Balkena ausgefüllt ist dann 
funktioniert dein Display.

Schau genau ob du nicht etwas vergessen hast oder eventuell irgendwelche 
pins verwechselt hast.

Gruss Georg.

von Ste (Gast)


Lesenswert?

An was hat es bei dir gelegen? Ich habe die Software vom Tutorial 
verwendet, die sollte ja schon funzen, bräuchte es noch irgendwelche 
Pullups?
Kannst du mir deine Software mal schicken, dann könnte ich das testen.

Gruss

von Ste (Gast)


Lesenswert?

Mir ist noch etwas in den Sinn gekommen, die Pins vom Port B sind können 
ja auch andere Funktionen einnehmen als nur I/O-Pin zu sein. Auf was 
sind die Standartmössig eingerichtet? könnte es sein, dass es daran 
liegt, dass der I/O gar nicht aktiviert ist? Wie kann ich die I/O-Pins 
des B-Ports aktivieren? Ja ich weiss ich könnte im Datenblatt nachsehen, 
aber ich habe das bereits nur verstehe ich nicht ganz wie das geht, will 
ja meinen AtMega8 nicht kaputten!

Danke für Hilfe

von Andreas Wiese (Gast)


Lesenswert?

Hallo,

hast du im Datenrichtungsregister DDRB den Port auf Ausgang gelegt?
Hast du den Stackpointer richtig initialisiert? Beim Atmega8 benötigt 
dieser im Gegensatz zum 2333 im Beispiel zwei bytes!

Gruß
Andreas

von Ste (Gast)


Lesenswert?

Ja habe ich beides!!

von Ste (Gast)


Lesenswert?

Habe den Bock wie so oft durch Zufall gefunden.
Als ich den Atmega zum ersten Mal programmiert habe, habe ich vergessen 
die Ports im Programm zu ändern, das ist mir auch schnell aufgefallen 
und habe das geändert. Beim zweiten und dritten und vierten.. etc mal 
programmieren habe ich immer vergessen den Chip vorher zu löschen, 
sowieso komisch, dass dann das programm nicht reklamiert! Tja, hetzt 
funzts

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.