Hallo, ich probiere gerade mein LCD-Display aus (Pollin Ad-on Board). Das LCD Display läuft auch. Jetzt habe ich das Problem, dass das Display krytische Zeichen NACH dem o rausbringt (die nächsten 2-3 Zeichen werden falsch ausgegeben, in dem Fall jetzt PI und das andere hab ich noch nie gesehen). Hab das ABC jetzt durchgemacht, aber das o ist der einzigste Buchstabe wo es passiert. Jemand ne Ahnung warum?
Normalerweise ist sowas ein Hinweis darauf, dass du irgendwelche Datenleitungen zum LCD vertauscht hast, oder dass es einen ungewollten Kurzschluss zwischen den Datenleitungen gibt. Kann auch sowas wie ein Wackelkontakt sein. Denn normalerweise sind dann systematisch irgendwelche Zeichen falsch. Man identifiziert dann das Bitmuster der falschen Zeichen (siehe zb hier http://de.wikipedia.org/wiki/HD44780#Schrift_und_Zeichensatz) und kann dann daraus ableiten, wo der Kurzschluss sitzen muss.
Vielen Dank! Hast mir schon ein großes Stück weiter geholfen. Habe jetzt den Fehler gefunden, nur nicht die Ursache. Folgendes passiert: Sobald ich ein Zeichen mit xxxx1111 schreibe, z.B. 'o', dann bleiben die 4 1sen stehen. Diese verwendet es dann beim nächsten Zeichen als 1111xxxx. Beispiel o - 0110 1111 a - 0110 0001 aber da die niedrigen 4 bits beim o stehen bleiben und die 4 hohen bits zu den niedrigen werden, wird daraus: a - 1111 0110 (0001) -> PI Aber warum passiert das nur bei Zeichen mit xxxx1111?
Cris schrieb: > Aber warum passiert das nur bei Zeichen mit xxxx1111? Weil sicher irgendwo was mit "0x0F" bzw. "0xF0" maskiert wird. Bist Du sicher, dass die Routine "lcd_out" genau das macht, was sie soll?
Ich kann diesen Fehler leider bestätigen und komme leider auf keinen grünen Zweig.. Sende ich per Hand eine 0b11111111; dann zeigt der mir nur 'p' an.. Nehme ich aus dem LCD Tutorial die Dateien (lcd-routines.c & .h) dann gibt es nach jedem Zeichen welches im lowerByte 1111 stehen hat nur noch Grütze.. Z.B. "HalloPopo" gibt auf dem Display Hallo██þpo jeder andere Buchstabe wird sauber übertragen nur alle Zeichen die im Lower Byte 1111 stehen haben verursachen Probleme... Jemand mittlerweile eine Lösung? Gruß THorsten
Eieiei...habe den Fehler nach ca. 8 Std. Nachtschicht (gestern 4 und heute 4) endlich gefunden!! Nachdem ich festgestellt habe, dass sich die Zeichen ändern, wenn ich das Display nicht mit Leitung anschließe sondern direkt auf das Steckbrett klemme habe ich nochmals angefangen an den Timings aus der lcd-routines.h rumzuspielen. Nur nicht wie letzte Nacht alle auf einmal sondern nur ausgewählte Werte (Enable & WriteData). Und siehe da! Es klappt! :D Warum die Timings gerade beim lower Byte und nur, wenn alle 1 sind mit den voreingestellten Zeitwerten Probleme verursachen ist mir noch schleierhaft.. Hatte irgendwo mal gelesen, dass der interne Taktgeber(Atmega32) sehr ungenau und temperaturabhängig ist.. könnte das vllt. das Problem sein? Kurios ist ja, dass meine ersten Versuche keinerlei Probleme verursachten. Erst in weiteren tests und Codeexperimenten kam der Fehler plötzlich ans Tageslicht und ging nicht mehr weg...:/ Vllt. sollte man diesbezüglich in das Tutorial eine Info einbauen. Oder habe ich wieder nur halb gelesen und es gibt schon eine? ;) Viele Grüße THorsten
:
Bearbeitet durch User
Vielleicht fehlt dir irgendwo ein Abblock-Kondensator oder er ist schlecht angebunden. Dann bricht die Spannung leicht ein, wenn viele Pins auf 1 liegen. Mit freundlichen Grüßen Thorsten Ostermann
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.