Fehler bei "o" im LCD?

Gast #2545189
Lesenswert?

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?
Angehängte Dateien:
#2545217
Lesenswert?

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.
Gast #2545285
Lesenswert?

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?
Gast #3919396
Lesenswert?

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
#3919417
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren