Forum: Mikrocontroller und Digitale Elektronik LCD (4x27) mit 2 Controllern


von lukas (Gast)


Lesenswert?

Hallo!

Habe bereits erfolgreich ein LCD(4x27) vom 8 in den 4bit modus
geschaltet und kann damit auch Zeichen ausgeben.
Allerdings sind die Routinen auf den ersten Controller(erste zwei
Zeilen) angepasst.
zB: bsf   en1   ; en1 ist die enable Leitung vom 1. Controller
    nop
    bcf   en2


Ich würde nun gerne alle vier Zeilen nutzen wollen, müsste dazu
allerdings die ganzen Routinen kopieren und e1 durch e2 ersetzen um
auch den zweiten Controller zu initialisieren und anschliessend steuern
zu können.

Es erscheint mir aber zu umständlich bzw. nicht sehr elegant und zudem
schafft eine solche Methode doppelt so viel Code.
Könnte ich nicht irgendwie eine Variable für die beiden enable
Leitungen der Controller festlegen um nur eine Version der
Steuerungsroutinen verwenden zu können?

zB:

if (irgendwas)
#define x  PORTB, 2   ; x ist nun en1
else
#define x  PORTB, 3   ; x wäre nun en2 (also enable controller 2)


call routine

..
..

routine

    bsf   x
    nop
    bcf   x



Ich weiss, dass mein Beispiel so nicht funktionieren kann zumal es
assembler konform sein sollte, aber ich hoffe dass meine Idee
verständlich ist.

Gruß
Lukas

von Hannes L. (hannes)


Lesenswert?


von lukas (Gast)


Lesenswert?

Danke!

Also der Inhalt des ersten Links hat keine Lösung zu meiner
Fragestellung.

Im zweiten verstehe ich einiges nicht..

Was bedeutet:
.def lcdcontroller1=r21
.def lcdcontroller2=r22

sind r22 und r21 Variablen oder Pins?

Vielleicht sollte ich bemerken, dass ich mit einem PIC arbeite.

von Jan M. (mueschel)


Lesenswert?

rxx sind bei den Atmel-µC die Registernamen. Die werden einfach nur mit
einem anderen, beschreibenden Namen versehen.

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

> Was bedeutet:
> .def lcdcontroller1=r21
> .def lcdcontroller2=r22

> sind r22 und r21 Variablen oder Pins?

Das ist nicht von mir und auch sachlich falsch. Das wird aber in den
Beiträgen erklärt.

An die Anhänge vom Dateityp *.inc komme ich momentan nicht ran, ist
vermutlich versehentlich den letzten Scriptänderungen zum Opfer
gefallen...

Deshalb hänge ich die LCD-Routinen hier noch mal mit verändertem
Dateinamen (.asm) an.
Wie der Aufruf erfolgt, kann man im Anhang dieses Beitrags sehen:
http://www.mikrocontroller.net/forum/read-1-164017.html#164207



> Vielleicht sollte ich bemerken, dass ich mit einem PIC arbeite.

Das sollte man eigentlich schon im ersten Posting mit der Frage
bemerken.

...

von lukas (Gast)


Lesenswert?

hej! Das ist ja ganz simpel..

Dank Dir vielmals!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.