Hey Leute,
ich weis ihr habt es sich 1000 mal gehört und gelesen aber ich komme
seit 2 Tagen einfach nicht weiter. Ich versuche mit dem XMEGA128A1 das
Display
http://www.reichelt.de/index.html?ACTION=3;ARTICLE=31653;SEARCH=lcd16
zu initialisieren.
Der Controller läuft mit 16MHz.
Ich hab schon viele Sachen aus dem Internet an mein Controller angepasst
aber das LCD macht nicht weiter.
Ich bekomme das Display soweit initialisiert das es 2 Zeilen ganz in
schwarz anzeigt.
Meine Initialisierung sieht zimlich wild und unübersichtlich aus. Aber
mehr habe ich nicht und irgentwie weis ich auch nicht wo ich weiter
ansetzen soll.
Hier mal Code und Pinbelegung
LCD_RS PORTB 0
LCD_RW PORTB 2
LCD_EN PORTB 4
DB0-DB7 PORTA
1
#define sbi(ADDRESS,BIT) ADDRESS |= (1<<BIT) // set Bit
2
#define cbi(ADDRESS,BIT) ADDRESS &= ~(1<<BIT) // clear Bit
Das Display ist insofern gemein, dass es etwas längere Flachbandkabel
zum Controller überhaupt nicht mag. Die 25ns Flanke am E-Signal ist
kritisch. Ich hatte schon Fälle, in denen ein separater Treiber
notwendig war.
Ich habe grade einmal zwischen den einzelnen Initzialisierungsschritten
einfach mal zum Teseten 1s warte zeiten eingefügt um zu sehen was das
Display nach den einzlnen Schritten anzeigt.
Und siehe da es Funktioniert aufeinmal.
Cursor Position änder Funktioniert auch jetzt muss ich nur noch die
Ausgabe der zeichen hinbekommen.
Zum Kommentar von Peter Dannegger,
Du hast recht der Code sieht wirklich noch nicht schön aus ist aber auch
nur erstmal zum Testen sobald alles Läuft wird der ganze Code noch in
Funktionien geschrieben etc. damit es dan Kürtzer ist und besser
aussieht.
XMEGA LCD schrieb:> nur erstmal zum Testen sobald alles Läuft wird der ganze Code noch in> Funktionien geschrieben
Klingt wie: Ich klebe den Tisch erstmal aus abgebrannten Streichhölzern
zusammen und wenn er fertig ist, nehme ich richtige Bretter.
Die Verwendung von Funktionen will Dir das Leben erleichtern, d.h.
unnütze Schreibarbeit und viele Fehlerquellen ersparen.
Du mußt nur eine Funktion debuggen, anstatt hunderte Codezeilen.
Um das Aussehen gehts nicht.
Danke für die Antwort.
Habe inzwischen alles sauber in Funktionen Untergebracht. =) und es
läuft immer noch :D
Ich durchstöber grade das Datenblatt für die nächste Aufgabe. Ich such
den Event Chanell für den Counter bzw die Eventchannel. Ma sehn wo das
iost. Danke nochma für die Hilfe