mikrocontroller.net

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


Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jan M. (mueschel)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...



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

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

...

Autor: lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hej! Das ist ja ganz simpel..

Dank Dir vielmals!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.