Hallo Gemeinde Habe leider auch Probleme mit dem M50530 LCD Display und der Initialisierung. Ich habe die (durchaus verstandene) Software an meine Schaltung angepasst, aber außer den alt bekannten Balken tut sich nichts. Routingbedingt musste ich die CTR-Leitungen auf einen anderen Port legen als die Daten-Leitungen. Durchgeklingelt habe ich alles schon 10x F_CPU ist richtig. CKDIV8 ist auh gelöscht. Im Schaltplan ist noch ein ATMega8 vermerkt, aber es hängt ein pingleicher ATMega328P dran. Compiler weiß darüber bescheid. Vielleicht kann jemand kurz mal reingucken. Danke Torsten
Meiner Meinung nach stimmt die PIN-Belegung nicht. Deine Belegung: PIN PORT 2 PD4 9 PD5 10 PD6 11 PD7 23 PC0 24 PC1 25 PC2 26 PC3 Belegung laut Datenblatt: PIN PORT 2 PD0 9 PB6 10 PB7 11 PD5 23 PC0 24 PC1 25 PC2 26 PC3 Thomas
Moin Torsten, interessant, dass mein alter Code noch Verwendung findet :-) Prüfe bitte mal die Anschlussbelegung des Displays an JP2. Meine Pinbelegung sagt nämlich, dass Display-seitig an Pin 11 R/W liegt und an Pin 13 OC1. Das ist bei Dir im Schaltplan genau andersrum eingezeichnet. Eventuell ist hier ein Fehler, falls das Display 1:1 mit JP2 verbunden ist. Ohne jetzt durch den kompletten Code geschaut zu haben... aber darf ich fragen, warum Du in der Software einige Delays verändert bzw auskommentiert hast (z.B. in der Funktion LCD_execute())? Längere Delays sind in der Regel unproblematisch, auskommentieren unter Umständen schon. @Thomas: Die Belegung scheint sich in den verschiedenen Bauformen des AVRs zu unterscheiden. Evtl. verwendet Torsten PDIP statt TQFP? Gruß, Daniel J.
Hallo Daniel Ja, Danke für den Code :-)) Ist sehr weit rumgekommen ... Das mit der Anschlussbelegung werde ich prüfen. Delays habe ich aber keine verändert oder gestrichen, sondern den Code von hier probiert und nur die Ports angepasst: Beitrag "Re: LCD Display 8x24 mit M50530" Timing könnte aber DER Hinweis sein, da ich bei einem anderen Code aus dem Netz, der aber scheinbar auch auf Deinem basiert mal das CLKDIV8 Fuse gesetz hatte und dann ging was. Verwende auch TQFP. Ist Dein Code von hier: Beitrag "Re: LCD Display 8x24 mit M50530" Das Original mit original Delay Werten ? Melde mich, wenn alles geht. Danke Torsten
Hi Torsten, ja, dein zweiter Link führt zu meinem originalen Code. Dort habe ich kurz reingeschaut und sehe z.B. in der LCD_execute()-Funktion Aufrufe von delay_short(). In deinem Code stehen hingegen auskommentierte delay(1). Das muss nicht in jedem Fall gleich ein Problem sein (je nach Takt usw.) - es war mir halt aufgefallen. Mein Code ist sicherlich nicht perfekt, vielleicht ist das Delay gar nicht erforderlich. Wenn Du meinst Deine Pinbelegung sei richtig, kannst Du das Timing ja mal testen. Einfach mal den Takt stark reduzieren (der Clock-Prescaler kann beim ATmega328P zur Laufzeit per Software geändert werden) oder signifikante Delays einbauen. Viel Erfolg bei der Fehlersuche! Gruß, Daniel J.
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.