Zwei LCDs in Bascom

OP #2532373
Lesenswert?

Hallo,

habe gerade gelesen, dass es evtl. möglich wäre, 2 LCDs über die 
lcd4e2.lib anzusteuern.

Link: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/zwei_lcd/

Hat das schonmal jemand gemacht oder weiß ob es funktioniert?
Habe gerade meine Umgebung noch n icht fertig und wollte das vorher mal 
wissen ;)

Grüße
Gast #2532673
Lesenswert?

Ja, das geht. Man muß nur die 2 Enable-Eingänge von verschiedenen Port-
pins ansteuern lassen:

Config Lcdpin = Pin , E2 = Portb.1 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 
= Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2


Dann muß man eine Variable haben, die den Schaltzustand aufnehmen kann:

Dim ___lcdno As Byte

Nun kann man zwischen den Displays umschalten:

___lcdno = 0                  'auf Chip 1 schalten
Initlcd                       'die beiden oberen Zeilen initialisieren
Cls                           'die beiden oberen Zeilen löschen
___lcdno = 1                  'auf Chip 2 schalten
Initlcd                       'die beiden unteren Zeilen initialisieren
Cls                           'die beiden unteren Zeilen löschen

Locate 2 , 1
Lcd "MfG  Paul"
Gast #2533114
Lesenswert?

Dominik schrob:
>lcdno ist ja keine vorkonfigureierte - oder?

Nein das ist keine Gereiherte. Du gibst einfach nur an
___Lcdno=0
Damit ist das erste angesteuert, dessen Enable Anschluß im obigen 
Beispiel
an PortB.3 sitzt.

>und dann entsprechend die Enable Pins schält?

Warum willst Du die Pins schälen? Die sind doch schon schön blank.
;-)

MfG Paul
OP #2533266
Lesenswert?

Entschuldige meine blöde Frage, aber ich bin ganz neu "in der Branche":

Warum muss man ___lcdno als Byte deklarieren, wenn es diese schon 
"gibt"?
Weil ich mein, wenn ich ne neue Variable mach, muss ich ja ne Funktion 
machen, die deren WErt ausliest und etwas daraus "macht".
Also muss die schon hinterlegt sein - oder?
Warum muss man sie dann trotzdem deklarieren?

Danke schonmal:D

GRüße
Gast #2533369
Lesenswert?

Die Variable ___lcdno wird von der Routine zur LCD-Ansteuerung gebraucht
und auch da abgefragt.

Sie muß so heißen, weil die Routine diesen Namen erwartet.

Du mußt der Variablen den Wert 0 oder 1 zuweisen, damit die Routine 
weiß,
welches der beiden LCD Du meinst.

Wenn Du nur ein Display dran hättest, dann bräuchtest Du die Variable 
nicht,
denn dann gäbe es nur einen Enable-Eingang.
Es hätte doch keinen Sinn, eine Variable zu definieren und sie dann 
"leer"
mitfahren zu lassen. Das kostet nur Platz.

MfG Paul
Gast #2534140
Lesenswert?

Dominik schrob:
>wie lang darf die Leitung zwischen IC und Display max. sein,

Da wird man keine allgemeingültigen Angaben machen können.

Ich habe mal ein
Display nachträglich in eine Schaltschranktür eingebaut und es waren mit
Muß 70cm "Hosenträgerkabel" zwischen Display und Kontroller. Im Schalt-
schrank war "Stimmung", d.h. Frequenzumrichter und Schütze. Es gab keine
Störungen in der Anzeige.

Vorschlag: Mach die Strippen so lang wie Du sie brauchst und probiere es
aus.

MfG Paul

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