Forum: Compiler & IDEs LCD wird nur initialisiert, mehr nicht.


von Orikson (Gast)


Lesenswert?

Nachdem ich mit meinen Tastern, LED's und PWM etwas rumexperimentiert 
habe, wollte ich mich grad an ein LCD wagen. Dazu hab ich hier ein 2 x 
16 CLCD mit HD44780 kompatiblem Controller da. Als Code hab ich zum 
testen erstmal das aus m Tutorial 1 zu 1 übernommen, nur in der 
lcd-routines.h hab ich die Pin's geändert und den Takt angepasst:
1
...
2
#define LCD_PORT      PORTC
3
#define LCD_DDR       DDRC
4
#define LCD_RS        PC4
5
#define LCD_EN        PC5

Mein RS hängt an PC4, EN an PC5 und DB4 bis DB7 an PC0 bis PC3. Die 
obere Zeile wird nach dem anschalten mit schwarzen Kästchen ausgefüllt, 
die untere bleibt leer. Aber kein Text o.ä. ist zu sehen...

Woran kann das liegen? Hab schon mal die Dateien wie hier beschrieben 
ergänzt: Beitrag "LCD nicht nur für einen Port in C" Ohne Erfolg 
:-/

Is es irgend n Softwareproblem oder hab ich irgendwo einfach nur nen 
Kurzschluss drin? Konnte aber jetz nichts finden, und auch meine 3 
Tasten und LEDs laufen...

von Daniel S. (enton)


Lesenswert?

Hast du bei den Fuse Bits den Jtag deaktiviert? Der liegt nähmlich auf 
Port C.
Kann sein das deshalb deine Pins auf Port C nichts ausgeben.

von Jochen S. (schiffner)


Lesenswert?

Orikson wrote:

> Die
> obere Zeile wird nach dem anschalten mit schwarzen Kästchen ausgefüllt,
> die untere bleibt leer. Aber kein Text o.ä. ist zu sehen...

Guten Abend,
wenn das LCD richtig initialisiert ist verschwinden die schwarzen 
Kästchen im Display. Also funktioniert deine Initialisierung noch nicht 
richtig.

von Peter D. (peda)


Lesenswert?

Und RW, ist der an GND or hängt er in der Luft?

Ansonsten mal dieses Beispiel probieren, ist eigentlich bulletproof:

http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip


Peter

von Orikson (Gast)


Angehängte Dateien:

Lesenswert?

Hm,

also RW ist an Ground. Die Pins am LCD haben auch Kontakt mit dem Mega8, 
hab ich grad durchgemessen.

JTAG ist aus, zumindets kann ich es bei PonyProg2000 nicht in den 
Einstellungen finden... (passen eigentlich die Fuses, wenn ich nen 
externen 4 MHz Quarz (12,0000-HC18 von Reichelt hab?!)

Auch mit dem anderen Code konnte ich das ganze nicht zum arbeiten 
überreden.

Kann es vllt. doch irgend ein Kurzschluss oder so sein, wenn ich an 
meinem Quarz oder den Pins am Mega8, wo er angeschlossen ist mit meinem 
Finger drüber fahre und die beiden Kontakte überbrücke (mit dem 
Finger!!) fängt die ganze Schaltung das spinnen an, LEDs leuchten wild 
durcheinander (dabei sind die nichtmal aktiviert) etc.

von Hombre L. (hombrelobo)


Lesenswert?

ich hatte ein aehnliches problem mit meinem lcd, abhilfe war bei mir
eine erhoehung der delay-zeiten in der initialisierung.

von Daniel S. (enton)


Lesenswert?

Du hast doch sicherlich nen Multimeter mit nem durchgagsprüfer.
Check doch deine Pins einfach mal durch.
Und dann sende mal auf den einzelnen Bits die am LCD angeschlossen sind 
jeweils eine 1 raus, und schau ob sie am entsprechenden Pin vom LCD 
ankommt, und schau auch, ob sie ev. auch noch irgendwo anders rauskommt, 
wo sie nicht rauskommen sollte. Dann hast nähmlich was gebrückt. Was 
hast du für ein Board?
Bei jedem Lochraster Board das ich bisher gelötet habe, war irgendwo nen 
Kontakt, der nicht sein sollte:-)
Einfach mal durch checken.

von Michael U. (amiga)


Lesenswert?

Hallo,

sicher, daß 12,0000-HC18 ein 4MHz-Quarz ist?
Sieht mir eher nach 12MHz aus.

Kondensatoren am Quarz und den Quarz selbst mit möglichst kurzen 
Leitungen am Mega8? 100n am AVR?, HND von den Quarzkondensatoren 
möglichst kurz zum GND des Mega8?

Setz mal die CKOPT-Fuse, falls es ein 12MHz ist, kann es sein, daß er 
sonst nicht sicher schwingt.

Da0 Deine Finger an der Quarzbeschaltung das Ding zum Spinnen bringen, 
ist speziell ohne CKOPT und evtl. 12MHz nicht so verwunderlich.

Falls wirklich 12MHz stimmen vermutlich auch die Wartezeiten für das 
Display nicht. Laß ihn doch erstmal mit 1MHz intern laufen, dem Display 
ist zu langsam egal, dann kannst Du vielleicht die Ursache besser 
eingrenzen.

Gruß aus Berlin
Michael

von Orikson (Gast)


Lesenswert?

Sorry, is nur ein 4 MHz Quarz! Hab mal diverse Variationen für Taktungen 
versucht (intern und extern), aber nichts geht. Außerdem lässt er sich 
jetz nicht mehr programieren, wohl n falsches Fuse Bit gesetzt, obwohl 
ich mich ans Handbuch gehalten habe -.-

Habe außerdem mal alle Datenleitungen gemessen, und die passen. 
Allerdings hab ich noch eine getrennte Versorgungsleitung gefunden, dank 
welcher nichts ging... Mit neuem Mega8 geht jetz alles!

PS: Kann man den Mega8 noch retten, wenn man nicht genau weiß, was ihm 
fehlt?

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.