PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Display zeigt nur die hälfte...



Robin1508
06.02.2008, 13:54
Hi, ich hab vorhin mein 16*1 Display getestet. Doch es zeigt irgentwie nur die Hälfte an... Wenn ich einen 16 Zeichen langen String ausgeben will, kommt genau die hälfte davon.

Mein Code ist:



$regfile = "m32def.dat"
$crystal = 16000000

Confid Lcd = 16 * 1
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4

Cls
Locate 1 , 1
Lcd "Ichbinsechzehn.."

chr-mt
06.02.2008, 13:59
probiere es mal so:
Confid Lcd = 16 * 1A

Kannst ja mal in der Hilfe zu "config lcd" gucken, da isses erklärt.

Gruß
Christopher

Michael
06.02.2008, 14:04
Hallo Robin1508,

dein Display ist vermutlich als 2x8 organisiert.
Locate 1 , 1
Lcd "Ichbinac"
Locate 2 , 1
Lcd "chtunddr"

Also ich bräuchte ein größeres Display :D

Gruß, Michael

Robin1508
06.02.2008, 14:14
Ok jetzt hab ich das mit dem 1A eingestellt.
Ich hab mein Code so optimiert:



$regfile = "m32def.dat"
$crystal = 16000000

Confid Lcd = 16 * 1A
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4
Cursor off Noblink

Cls
Locate 1 , 1
Lcd "Ichbinsechzehn.."


Er zeigt jetzt zwar beide Seiten an, also den kompletten Text, aber die Rechte seite Blinkt... wieso das ?
ein CLS in einer Repeat Schleife bringt auch nichts. Der Text bleibt nach wie vor und die rechte Seite blinkt.

Oo

chr-mt
06.02.2008, 14:14
dein Display ist vermutlich als 2x8 organisiert.
So ist es wohl.
Das "A" bei der LCD Konfiguration ist für genau diese Typen gedacht.
Das Locate 2 kann man sich damit sparen.

Gruß
Christopher

chr-mt
06.02.2008, 14:17
Hi,
füge mal ein END als letzten Befehl an.

Gruß
Christopher

Robin1508
06.02.2008, 14:31
Ja Mit nem End funktioniert es. Aber nicht in ner Schleife..
Ich versteh das noch nicht ganz. Ich möchte den Fehlern ja nich aus dem Weg gehn, sondern versuchen das ganze zu verstehn ^^ Ich frag mich nur wieso sich in ner Schleife nur die rechte Hälfte mittels CLS löschen lässt?

chr-mt
06.02.2008, 14:36
Na,
dann poste doch mal deinen Code mit der Schleife.

Gruß
Christopher

Robin1508
06.02.2008, 14:38
$regfile = "m32def.dat"
$crystal = 16000000

Confid Lcd = 16 * 1A
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4
Cursor off Noblink

Do

Cls
Locate 1 , 1
Lcd "Ichbinsechzehn.."

Waitms 200

Loop

chr-mt
06.02.2008, 14:46
Hi,
könnte sein, das dein CLS zu schnell kommt (200mS sind ja nicht gerade viel für das menschliche Auge) und das dadurch der Eindruck entsteht, daß nur die Hälfte gelöscht wurde.
Sieht des denn zB. bei Wait 2 genauso aus ?

Gruß
Christopher

Robin1508
06.02.2008, 14:51
Jop, nur die Rechte Seite verschwindet durch Cls..

Robin1508
06.02.2008, 15:03
Was mir auch auffällt ist, dass wenn ich ein Zeichen vom 1. bis zur 16. stelle durchlaufen lasse, erscheint es nur in der Linken hälfte, sobald es bei der 9. Stelle sein sollte verschwindet es.




Do

Locate 1 , X
Lcd "#"

If x < 16 Then
x = x + 1
Endif
if x = 16 Then
x = 1
Endif

Waitms 200

Loop