LCD mit 2 Controllern

Gast #365130
Lesenswert?
• ▲
▼
Hallo,
ich habe ein LCD mit 2 Controllern, also auch 2 Enable-Leitungen.
Mit einer funktionierts auch, nur was ist mit der 2ten? Ich verwende
die LCD-Lib von P. Fleury und weiss da nicht so ganz, was ich machen
soll? Einfach 4 Lines angeben und Enable 1 + 2 zusammenanschließen?
Gruß
Martin
Gast #365131
Lesenswert?
• ▲
▼
einfach wie 2 Displays verwenden. Die Datenleitungen sind für Beide
gemeinsam vorhanden und die Daten werden mit dem jeweiligen Enablepin
an das passende Display geschickt. Wenn du beide zusammenschaltest
passiert entweder garnix oder beide Displayteile zeigen dann dasselbe
an. Also du gibst ein Zeichen aus und es erscheinen Zwei.

bye

Frank
Gast #365132
Lesenswert?
• ▲
▼
Hallo,
kennst du die LCD-Liv von Fleury? Die muss ich ja irgendwie
modifizieren, oder? Oder wie meinst du das mit "wie 2 Display"
verwenden? Dass die Leitungen bis auf Enable gemeinsam genutzt werden
ist mir schon klar, nur muss dass Programm ja wissen, wann es welches
Enable nutzen soll.
#365133
Lesenswert?
• ▲
▼
Ich kenn die Lib jetzt nicht auswendig, hab sie zwar schon mal benutzt
aber weiß nicht ob sie 2 Displays unterstützt.
Falls nicht kannst dir ja 2 Makros schreiben die du vor jedem Befehl
absetzt:

#define USE_DISP1 ...setze Enable1, lösche Enable2...
#define USE_DISP2 ...setze Enable2, lösche Enable1...

dann gehts los:

USE_DISP1;
lcd_init(); // LCD1 initialisieren

USE_DISP2;
lcd_init(); // LCD2 initialisieren

USE_DISP1;
lcd_putc('A'); // Zeichen auf 1. Disp. ausgeben.
... usw

Wird halt schwierig wenn du Text über mehrere Zeilen ausgeben
möchtest.

Gruß
Roland
Gast #365134
Lesenswert?
• ▲
▼
Hallo,
ich bin da noch nicht so erfahren, muss ich die makros in die
hauptdatei schreiben? Habs so versucht:
#define lcd1 PORTB |= (1<<3) | (0<<2);
#define lcd2 PORTB |= (0<<3) | (1<<2);
aber hat nicht geklappt.
die Enables hängen an PortB 1 + 2
Gast #365135
Lesenswert?
• ▲
▼
> Habs so versucht:
> #define lcd1 PORTB |= (1<<3) | (0<<2);

Damit schaltest du bit 3 ein und bit 2 schaltest du nich ein (und auch
nicht aus).

#define lcd2 PORTB |= (0<<3) | (1<<2);

Damit schaltest du bit 2 ein und bit 3 schaltest du nicht ein (und auch
nicht aus).
Du könntest es damit versuchen:

#define lcd1 PORTB |= (1<<3) &= ~(1<<2)
#define lcd2 PORTB &= ~(1<<3) |= ~(1<<2)

> aber hat nicht geklappt.

Grundregel: Immer dazu schreiben, was nicht geklappt hat und wie sich
das bemerkbar gemacht hat.

> die Enables hängen an PortB 1 + 2

Warum änderst du dann die bits 2 und 3?
#365137
Lesenswert?
• ▲
▼
also ob das Bitgeschiebe jetzt stimmt weiß ich nicht. Es gibt /gab doch
mal so schöne Befehle wie SBI/CBI im Gcc.
Ich würd die Bits auf alle Fälle nacheinander setzen, sonst kennt man
sich schnell nicht mehr aus:
PORTB &= ~ (1 << PB1); PORTB |= (1 << PB2);

Das DDRB muss übrigens auch richtig gesetzt sein, damit PB1+2 erst mal
Ausgang werden. (Am Besten mal im Avrstudio durchsimulieren, ob
überhaupt am Port was ankommt)

Gruß
Roland
Gast #365138
Lesenswert?
• ▲
▼
Mir ist da noch was gekommen und zwar muss ich in der lcd.h ja angeben,
wo enable angeschlossen ist. D.h. die lcd.c wird das auch irgendwo
benutzen. Wenn ich also davor im Hauptprogramm was ändere, wird das
doch sicher von der lcd.h mit jedem Kommando das ich daraus benutze bei
Bedarf neu eingestellt -> die Makros haben keine Wirkung mehr.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.