PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom 4-zeiliges LCD lässt sich nur einzeilig in Zeile 1 oder 2 ...



oderlachs
16.05.2013, 16:09
Hallo Freunde,
nachdem nun blitzschnell das ErsatzLCD aus UK hier eintraf, erlitt ich den nächsten Rückschlag, keine 4 zeilige Anzeige möglich...
Habe das Beispiel Hier (http://www.rn-wissen.de/index.php/Bascom_und_LCD%27s) genutzt um das LCD schnell zu testen. eigendlich sollte lt dem RN Artikel ja nur ab LCD > 80 Zeichen eine extra lib eingebunden werden.
Also LCD 20x4 ist gar nicht möglich, dann kann ich eben mit der version LCD 16x2 arbeiten aber natürlich kommt alles andere da raus als wie eine gute zweizeilige Anzeige, endweder ich schreibe:

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

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

Cls
Locate 1 , 1
Lcd "Hallo Welt"
// Anzeige in der 1 Zeile Pos. 1 OK


oder

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

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

Cls
Locate 2 , 1
Lcd "Hallo Welt"
Anzeige in der 2. Zeile Pos. 1 OK


Nichts geht hier:

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

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

Cls
Locate 1 , 1
Lcd "Hallo Welt"
Locate 2 , 1
Lcd "Hallo Zeile 2"

// Hier geht nix !!


Was mache ich falsch ???

Werde heute Abend nochmals in GCC bze Arduino-C probieren...

Danke schon für eventuelle Hilfe von Jemanden


Gerhard

HeXPloreR
16.05.2013, 16:20
Hallo Gerhard,

probier das mal aus. Ist im 4-Bit Mode auf 20*4 Display. Achte auf die Pausen zwischen den Configs - die sind wichtig, einige ms sollten es schon sein. Ich habe hier einfach mal 1 sec genommen. Kann man ja mal ausprobieren wenn es soweit ist ;)
Ob die Pins jett alle noch original sind weiß ich nicht mehr, aber da musst Du halt nal schauen wo Du dran bist.
Die "Initlcd" fehlt bei Dir - ggf benötigst Du sie hier auch nicht unbedingt.

Viel Erfolg damit.

Wie groß ist denn das Display 20 oder 16*4?


'LCD Einbindung:

' LC-Display DISPLAYTECH 204B an PortB (Wannenbuchse) über RN-LCD-Adapter

Config Portb.4 = Output 'Spannung an LCD aktivieren
Lcdpower Alias Portb.4
Lcdpower = 1

Config Portb.6 = Output
Lcd_rw Alias Portb.6
Lcd_rw = 0

Wait 1
Config Lcd = 20 * 4 'Chipset = Ks077
Wait 1
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7
'Config Lcdbus = 4
Initlcd
Cls

Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
Lcd "an RN-Control"
Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
Lcd "beides Bausaetze von"
Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
Lcd "robotikhardware.de"



Leider habe ich mein LCD nicht griffbereit-kleiner test:
Schreibe mal einen Zeile mit genau 16 (bzw 20) Zeichen voll. Was passiert?
Was passiert wenn Du 17 (bzw21) Zeichen in eine Zeile schreibst?

oderlachs
16.05.2013, 18:52
Hallo HeXPloreR !

danke das hat mir sehr geholfen, ein für mich passenden Code zu stricken, ist ja nicht viel anders, aber zum Testen ist es ganz gut und auch zu erweitern.
Mir ging es erst mal darum ob die LCD auch 100%ig arbeiten, nicht das ich mich im C Code die Augen aus dem Kopf starre um eventuelle Fehler dann im Code zu suchen und in Wahrheit ist das LCD dran schuld, wie zu Anfang mit der def. Lieferung.
Hier nun mein etwas geänderter Code:

'LCD Einbindung:
'für 20 Zeichen 4 Zeilen Display
'von SURE electronics
'ATMega32 auf STK500
'************************************************* ******************************
$regfile = "m32def.dat"
$crystal = 3686400

Config Lcd = 20 * 4 'Chipset = Ks077
Wait 1
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4

wait 1
Cls
do
Locate 1 , 1
wait 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
wait 1
Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
Lcd "an RN-Control"
wait 1
Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
Lcd "beides Bausaetze von"
wait 1
Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
Lcd "robotikhardware.de"
wait 1
Cls
loop
end 'end program

HeXPloreR
16.05.2013, 19:25
Das bedeutet es funktioniert? Würde mich freuen wenn es so ist und ich helfen konnte.

oderlachs
16.05.2013, 20:21
Ja natürlich funzt es, Dank Deiner Hilfe...da die Zeit drängt werde ich das Programm des Bewässerungsautomaten erst mal in Basic schreiben, oder das ganze erst mal mit nem Arduino aufbauen, eher ich mich da mit GCC befasse wo ich immer mit den Fremd-Libs Probleme habe, es geht ja nur das ich über meinen Urlaub die Tomaten und Gurken bewässert bekomme und das der helfende Kotrollierende am Display ablesen kann was Stand der Dinge ist.
Hatte auch mit dem I2C RTC Modul in GCC Probleme...
Na mal sehen was wird

Vielen Dank nochmals Dir

Gerhard