Forum: Mikrocontroller und Digitale Elektronik 16x2 Display, erstes zeichen fehlt


von Uwe H. (uwe1981)


Lesenswert?

Hallo mal wieder :-) Der erste Versuch, einen Text auf einem Display 
auszugeben, klappte nur zu 95% :-( Hier schonmal der Quellcode von 
Bascom:

>>>>>>>

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
   Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2


Cls
Locate 1 , 1
Lcd "Zeile 1"
Locate 2 , 1
Lcd "Zeile 2!"


End

>>>>>>>>

Problem ist folgendes: In der ersten Zeile wird der erste Buchstabe 
einfach "verschluckt". Statt "Zeile 1" steht dort "eile 1". Setze ich in 
den Quellcode vor dem Wort ein Leerzeichen, etwa:

Locate 1 , 1
Lcd " Zeile 1"

dann klappt es und er zeigt "Zeile 1". Das heisst, das irgendwo das 
erste Zeichen im Nirvana verschwindet, oder? Bei Zeile 2 klappt alles 
wie es sein sollte, da taucht das Problem nicht auf. Wer kann mir was 
raten?

Grüße, Uwe

von Ralle (Gast)


Lesenswert?

und wie ist die INI für das Display?

Ralle

von Klaus D. (kolisson)


Lesenswert?

Uwe Heydemann schrieb:
> Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
>    Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
> Config Lcd = 16 * 2

Hallo Uwe,
eigentlich sieht das alles korrekt aus sofern es sich tatsächlich um
ein hd44780 kompatibles LCD handelt.
Genau so verwende ich die Configs auch immer ohne Probleme.
Das einzige , was mir auffällt ist der Unterstrich hinter "Db6 = Portd.6 
, _"
Der gehört da nicht hin.
Du kannst ja zusätlich nochmal versuchen den Befehl "INITLCD" 
einzusetzen.
(Ich hab den noch nie benötigt).

ggf. ist vielleicht auch das LCD nicht Okay. Steck mal ein anderes dran.

Gruss Klaus

von Karl (Gast)


Lesenswert?

Vielleicht stimmt das "Timing" nicht. Ist $crystal korrekt? Probier mal 
"Waitms 100" nach dem "Cls" (oder davor).

von MaWin (Gast)


Lesenswert?

> Das einzige , was mir auffällt ist der Unterstrich hinter
> "Db6 = Portd.6 , _" Der gehört da nicht hin.

Der Unterstrich kennzeichnet die Fortsetzung auf der nächsten Zeile.

von Bastler (Gast)


Lesenswert?

Vermute das Problem liegt an der LCD Kompatibilität HD44780.

Ich benutze die LCD Ansteuerung wie Uwe.Schon 15 mal benutzt ohne 
Probleme
(LCD aus der Bucht, Blau/weiss )

Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portd.7 , Db5 = Portd.6 , _
      Db4 = Portd.5 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2
Cls
Cursor Off

Locate 1 , 1
Lcd "Zeile 1"
Locate 2 , 1
Lcd "Zeile 2"

von Gerd (Gast)


Lesenswert?

Initialisierung ist i.O., nur kommt das erste Zeichen zu schnell, also
NACH dem letzten INI-Befehl 2ms warten (siehe Post von Karl)
100ms braucht das Display bzw. der 44780 an dieser Stelle nicht.

Gruß Gerd

von Uwe H. (uwe1981)


Lesenswert?

Gerd schrieb:
> Initialisierung ist i.O., nur kommt das erste Zeichen zu schnell, also
> NACH dem letzten INI-Befehl 2ms warten (siehe Post von Karl)
> 100ms braucht das Display bzw. der 44780 an dieser Stelle nicht.
>
> Gruß Gerd



>>> Das war der Fehler :-) Wenn ich nach CLS noch Cursor off oder waitms 2 setze, 
dann klappert es so wie es sein soll :-) Danke Jungs, ihr seit wie immer meine 
Rettung :-)

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
Noch kein Account? Hier anmelden.