Zwei LCDs in Bascom

OP #2532373
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.