Grüß Gott an alle da draußen, ich habe ein kleines Problem. Ich versuche gerade ein LCD mit HD44780 Chip zum laufen zu bringen, leider bisher ohne Erfolg. Ich habe mich an Tutorial hier im Forum orientiert http://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte Die lcd-routines.h habe ich angepasst, ist auch mit angehängt. Alles andere habe ich 1:1 so gelassen. Leider passiert auf meinem LCD genau garnichts. Wenn ich am Kontrastpoti drehe, dann werden die Kästchen schwächer oder stärker, mehr passiert aber nicht. Laut Internet soll man es so einstellen, dass man die Kästchen noch grade so sieht --> erledigt. Das ganze läuft auf einem Mega32, das LCD hängt an PortC und JTAG ist aus. Am Mega hängt ein 16Mhz Quarz, der auch fehlerfrei werkelt. LED blinken geht. Angeschlossen ist es wie folgt: PORT C 0 (22) = RS PORT C 1 (23) = PORT C 2 (24) = E PORT C 3 (25) = DB4 PORT C 4 (26) = DB5 PORT C 5 (27) = DB6 PORT C 6 (28) = DB7 PORT C 7 (29) = Ich hänge euch mal alles an was ich habe, eventuell sieht ja jemand das, was, mir verborgen bleibt. Vielen Dank für die Aufmerksamkeit Stefan
Und die Belegung, die du hier beschrieben und im Code hast unterscheidet sich.
>Und die Belegung, die du hier beschrieben und im Code hast unterscheidet >sich. Nein, nur die Kommentare sind falsch. Sowas hier ist Schrott:
1 | // Hier die verwendete Taktfrequenz in Hz eintragen, wichtig!
|
2 | |
3 | #ifndef F_CPU
|
4 | #define F_CPU 16000000
|
5 | #endif
|
Du denkst jetzt du hast F_CPU auf 16MHz gestellt. Wenn aber bereits F_CPU definiert ist z.B. auf 8MHz dann bleibt es auf 8MHz. Das könnte z.B. in den Projekteinstellungen stehen und per Compileroption reinkommen. Wenn der Takt jetzt aber 16MHz ist sind alle delays zu kurz. Wenn schon dann knallhart: #define F_CPU 16000000 ohne #ifndef Geraffel. Dann bekommst du sowas wenn F_CPU schon definiert ist und einen anderen Wert hat: lcd.h:15:1: warning: "F_CPU" redefined <command-line>: warning: this is the location of the previous definition Da weiss man dann wenigstens was Sache ist.
Nach über 3 Tagen Kopfzerbrechen endlich die Lösung: Das Jumper Kabel welches Atmega32 und DB5 verband, war defekt. Ich danke allen fürs helfen und vor allem Danke für den Link. Der Code ist Klasse! Viele Grüße
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.