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...
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.
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.
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.
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
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?