www.mikrocontroller.net

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


Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
...
#define LCD_PORT      PORTC
#define LCD_DDR       DDRC
#define LCD_RS        PC4
#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...

Autor: Daniel Schillinger (enton)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jochen S. (schiffner)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Orikson (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Hombre Lobo (hombrelobo)
Datum:

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

Autor: Daniel Schillinger (enton)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Orikson (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

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.