PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit einzeiligem LCD



mikro-VIIV
17.05.2008, 20:05
Hallo zusammen,
ich hab kürzlich eines Faxgerät von brother ausgeschlachtet.
Da war ein Display mit nem HD44780 Treiber drin
Das Display hat eine Zeile mit 16 Zeichen.

mein bisheriger Quelltext sieht so aus:

$regfile = "m16def.dat"
$crystal = 16000000
$baud = 38400

Config Portb = Output
Config Lcd = 16 * 1
Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.0 , Db6 = Porta.1 , Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5

Cls
Waitms 500
Locate 1 , 1
Lcd "Hallo Welt"

Portb.0 = 1

Do
Wait 1
Toggle Portb.0
Loop

Wenn ich das ganze aber auf dem AVR laufen lasse bekomme ich immer nur die ersten 8 Zeichen zu sehen.
Weiß vielleicht jemand, woran das liegen kann?

Furtion
17.05.2008, 20:08
Hi,

mache Displays sind so verschaltet das sie 8x2 Zeilen haben. Das musst
du nur änder in der Config Lcd zeile.

mikro-VIIV
17.05.2008, 20:14
mache Displays sind so verschaltet das sie 8x2 Zeilen haben

Danke, für die schnelle Antwort

Ich hab es mal mit Config Lcd = 8 * 2 versucht, aber ich hab die Fehlermeldung Unknown LCD type [8*2] bekommen.

dann hab ichs nochmal mit Config Lcd = 16 * 2 versucht. Und siehe da, es ging.

Warum kann ich aber kein Display mit 8*2 Zeichen definieren?

Furtion
17.05.2008, 20:18
Hi,

kA ich habe es selber auch noch nicht ausprobiert hätte aber gedacht, das es
geht, aber naja haupstache es geht^^

mikro-VIIV
17.05.2008, 20:23
Dann werd ich mir wohl ne Subroutine für die Ausgabe schreiben müssen, die den anzuzeigenden Text automatisch auf die zwei Zeilen (obwohl es ja eigentlich nur eine ist) verteilt.

Ober hat da vielleicht jemand ne bessere Idee?

linux_80
18.05.2008, 13:13
Auch mal mit "16 * 1a" probiert ?

Robin1508
18.05.2008, 14:59
Ja, das Problem hatte ich auch. Du musst, wie linux_80 schon sagt, "16*1a" nehmen, und die ersten 8 Zeichen ansprechen, als wäre es Zeile 1 und die letzen 8 Zeichen, als wären sie Zeile 2:



Locate 1, 1
Lcd "hallo123"
Locate 2, 1
Lcd "4567890."


Gruß Robin

mikro-VIIV
18.05.2008, 16:00
Auch mal mit "16 * 1a" probiert ?

Danke für den Tipp. Funktioniert bestens.
Wieder mal was dazugelernt.