Ansteuerung LCD-Display

OP #4125584
Lesenswert?

Hey,
ich habe eine frage.
Ich möchte ein LCD-Display in Betrieb nehmen. Dort habe ich die 
Anschlüsse GND, Vdd, V0, RS, R/W, E, DB0-DB7, LED+, LED-
GND, Vdd, V0 ist klar.
die Anderen anschlüsse, sind doch ganz normale I/O pins vom 
Mikrocontroller oder? also ob ihc jetzt DB0-DB7 oder DC0-DC7 (wenn diese 
da wären) ist doch egal oder?

Eine zweite frage wäre, ob es eine art Display-Test gibt. Also das ich 
GND und Vdd anschließe und dann irgendetwas messen/beobachten kann.

Chandler
#4125627
Lesenswert?

Chandler Bing schrieb:
> oder kann das auch an DB1 oder was anderes?
> es muss doch eigentlich nur ein I/O pin sein oder?

Ja, es muss nur ein IO-Pin sein.

Allerdings musst du dann in deiner Software alle Bits passend zu deinem 
Anschlussschema umsortieren, was aufwändig und fehleranfällig ist. Daher 
würde ich das vermeiden.

Alternativ haben die HD44780-Displays eine 4-Bit Ansteuerung.
Lies mal den Artikel.
OP #4125651
Lesenswert?

Thomas Forster schrieb:
> Ja, es muss nur ein IO-Pin sein.

das ist gut.
eigenltich hätte ich auch gerne die selben pins genommen, dann hätte 
sich diese Frage nämlich erst gar nicht gestellt. Es war halt so, dass 
so ziemlich überall
RD0, RD1, RD2 für RS, RW E waren
und RB0-RB7 für die Datenleitungen.
daher ich mir ein wenig unsicher.
Leider kann ich diese paarung nicht machen, da dies mein board nicht 
hergibt.

Danke für eure Antworten

Chandler
#4125660
Lesenswert?

Chandler Bing schrieb:
> Thomas Forster schrieb:
>> Ja, es muss nur ein IO-Pin sein.
>
> das ist gut.

Naja. Du weißt dass die Antwort auf deine Frage rein von deiner Software 
abhängt?
Und so wie du fragst, gehe ich davon aus, dass du keine Zeile des 
Ansteuerungscodes (oder überhaupt was) selbst geschrieben hast.

Also halte dich daran, was deine Ansteuerungslib hier vorgibt.
Oft müssen mindestens die Datenleitungen alle auf demselben Port liegen.
OP #4125770
Lesenswert?

Cyblord ---- schrieb:
> Du weißt dass die Antwort auf deine Frage rein von deiner Software
> abhängt?

Jetzt ja

Cyblord ---- schrieb:
> Und so wie du fragst, gehe ich davon aus, dass du keine Zeile des
> Ansteuerungscodes (oder überhaupt was) selbst geschrieben hast.

Das nicht. Für das display habe ihc noch nichts gemacht. fange ich jetzt 
aber an (wenn es geheissen hätte, dass es so nicht funktioniert, hätte 
ich jetzt nicht angefangen)
(oder überhaupt was) doch eigentlich habe ich schon relativ viel. Wie 
gesagt, für das display habe ich noch fast nichts.

Cyblord ---- schrieb:
> Also halte dich daran, was deine Ansteuerungslib hier vorgibt.

Das geht ja wie gesagt nicht, da die pins bei meinem Board anders 
verbunden sind und es 'für mich' keine andere Verbindung ermöglicht.

Cyblord ---- schrieb:
> Oft müssen mindestens die Datenleitungen alle auf demselben Port liegen

Das tun sie
OP #4126029
Lesenswert?

Ich habe da doch noch einmal eine Nachfrage.
meine Pin-Belegung für die Daten ist
Display -> Controller
DB0 -> RG9
DB1 -> RG7
DB2 -> RG8
DB3 -> RG6
DB4 -> RG15
DB5 -> RG12
DB6 -> RG13
DB7 -> RG14

Ich weiss, dass diese Pinbelegung ein wenig durcheinander ist, jedoch 
konnte ich diese in mein Board so miteinander verbinden.

Ein Problem habe ich jetzt bei den Daten.
Jetzt weiss ich nciht, wie ich die Daten am Besten rüberschicken kann. 
Wenn ich alle Ports von B in der Reihenfolge hätte, hätte ich es 
versucht mit
1
#define Data = LATB

selbst dann müsste ich noch gucken ob es funktioniert, da ich ja nicht 
alle pins von B habe. Ist es jetzt auch irgendwie möglich das define so 
zu ändern, dass ich diese Reihenfolge bekomme?
als irgendwie
1
#define Data = {LATGbits.LATG9, LATGbits.LATG9...}


Chandler
#4126033
Lesenswert?

Man muss nicht alles mit defines lösen.

Das define definiert deinen Ausgangsport. Die Daten, die du dahin 
schreibst, musst du halt bitweise umsortieren um deiner Bitbelegung des 
Displays zu entsprechen. Statt umsortieren kann man sich das Byte auch 
bitweise in korrekter Reihenfolge aufbauen.
#4126057
Lesenswert?

Chandler Bing schrieb:
> Cyblord ---- schrieb:
>> Statt umsortieren kann man sich das Byte auch
>> bitweise in korrekter Reihenfolge aufbauen.
>
> wonach müsste ich denn da suchen, damit ich an Informationen ran komme,
> wie ich es machen kann?

Also komm schon. Ein Bit lesen, ein anderes Bit setzen. Mehr muss man 
nicht tun.

Du liest in deinem Quellbyte ein Bit, und wenn es 1 ist, dann setzt du 
in deinem Zielbyte ein Bit (an anderer Stelle) auf 1.
Und so das ganze Byte entlang.

Das sollte man schon beherrschen bevor man mit LCDs rumturnt. Was hast 
du denn bitte bisher gemacht?

https://www.mikrocontroller.net/articles/Bitmanipulation

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