Forum: Mikrocontroller und Digitale Elektronik CodeVision LCD


von Steffen Burr (Gast)


Lesenswert?

Hallo!

Wie kann ich in CodeVision ein LCD anschließen an einen 4433?

Ich möchte sowohl den ext. Interrupt 0, als auch das UART nutzen.
CodeVision lässt das LCD aber nur an PortD anschließen.
Gibt es eine Möglichkeit das zu ändern, oder muss ich dann die von
CodeVision programmierten Funktionen abändern?

Vielen Dank!
Steffen

von emil (Gast)


Lesenswert?

ich fürchte, es geht nur durch (aufwendige) umschreibung der
lcd.lib...werf' mal einen blick da und du wirst es sehen...das gefällt
mir an cvavr auch nicht, auch die sinnlose belegung der r/w leitung, wo
andere mit nur 6 pins auskommen...:(((

von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Steffen!

Hatte auch das Problem.
Im Anhang findest du ne .lib die mit 6 Pins auskommt.
Dafür kannst du nichts vom LCD lesen aber das scheint mir eher
unwichtig.

mfg Chris!!

von Steffen Burr (Gast)


Lesenswert?

Hallo Chris!

Echt super! Ich werds morgen gleich austesten.
Dass man vom LCD nichts lesen kann stört mich überhaupt nicht - hatte
ich sowieso nicht vor.

In welcher Reihenfolge müssen die Pins des LCD an den PORT?

Danke vielmals!
Grüße
Steffen

von emil (Gast)


Lesenswert?

hey chris,
das ist genau das, wonach ich auch gesucht habe;
sehr nett von dir, dass du die .lib datei hier
postest.
recht herzlichen dank!

@steffen:
die reihenfolge ist (glaube ich):

db0=pin.0 ,..., db3=pin3, rs=pin.4, en=pin.5

von Chris (Gast)


Lesenswert?

Die Reihenfolge stimmt genau!

von Steffen Burr (Gast)


Lesenswert?

Super, danke!

Sicher, dass ich hier die DB0 bis DB3 verwenden muss?
Im Tutorial wird mit den DB4 - DB7 gearbeitet!

Grüße
Steffen

von Steffen Burr (Gast)


Lesenswert?

Hab grade mal im Datasheet vom HD44780 Controller nachgeschaut.

Auf Seite 9 steht: 'DB0 to DB3: [..] These pins are not used during
4-bit operation.'

Also müsste das folgendes bedeuten:

Pin 0 = DB4
Pin 1 = DB5
Pin 2 = DB6
Pin 3 = DB7
Pin 4 = RS
Pin 5 = EN

Ist das korrekt so?

von Steffen Burr (Gast)


Lesenswert?

Hallo Chris,

ich hab grade versucht, deine Library zu verwenden, aber ich benötige
noch die passende Header Datei dazu! Kannst du die bitte ins Forum
stellen?

Vielen Dank
Steffen

von emil (Gast)


Lesenswert?

Hi Steffen,
sorry für den Fehler, natürlich hast Du Recht, es müssen doch db4-db7
verwendet werden;
habe es aus Versehen geschrieben, Chris hat wohl automatisch betstätigt
 :))

von Steffen Burr (Gast)


Lesenswert?

@emil: kein problem!

@all: vielleicht kann mir sonst jemand noch erkläern, wie ich die
Library in Codevision einfügen kann. Meiner Meinung brauch ich dazu
eine Header Datei, oder?

Grüße
Steffen

von Steffen Burr (Gast)


Lesenswert?

push ;)

@Emil, chris: Bitte erzählt mir, wie ich die Library in Codevision
einbinden kann. Danke!

von emil (Gast)


Angehängte Dateien:

Lesenswert?

hi steffen,

habe es zwar noch nicht ausprobiert, obwohl pcb schon in arbeit ist, am
wochenende wüsste ich es bescheid; habe auf jeden fall vor, die
headerdatei im anhang zu verwenden, die ist doch einfach eine ableitung
der funktionsnamen aus der mylcd.lib; hoffe, es klappt damit; sag bitte
bescheid, wenn du sie ausprobierst.

emil

von Steffen Burr (Gast)


Lesenswert?

Hallo emil,

danke für deine Antwort!
Ich habs grade probiert. Beim kompilieren tritt der Fehler auf:
'Error in library: E:\CAVR\mylcd.lib'
Line: 21, multiple declaration for 'lcd_e_toggle'

Hast du vielleicht Email oder ICQ. Würde mich freuen, wenn wir das
schnell lösen könnten´, damit ich weiterarbeiten kann ;-)
Meine Mail: steffen.burr@rfds.net

Danke!
Steffen

von Steffen Burr (Gast)


Lesenswert?

Ok, ich hab die Fehler in deiner Header Datei gefunden und behoben.
Sollte jetzt eigentlich gehen. Ich werds gleich mal versuchen und mich
dann melden!

Grüße
Steffen

von Steffen Burr (Gast)


Lesenswert?

Ok, kompilieren tut ers jetzt. Aber ausgeben tut er am Display leider
nix. Hab vor der Hauptschleife mal geschrieben:

lcd_init();
lcd_clear();
while (1)
      {
      // Place your code here
        lcd_putchar("R");

      };

Das Display zeigt aber immer noch zwei Streifen an.
Ich hab in der MyLCD.lib den PORT auf PORT A gestellt, an dem auch mein
LCD hängt ...

Irgendwelche Ideen?

Grüße
Steffen

von emil (Gast)


Lesenswert?

ICQ: 140700441 bin gerade online

von Steffen Burr (Gast)


Lesenswert?

@ CHRIS:

Deine Library funktioniert bei mir leider nicht. Bitte melde dich mal
bei mir per email (steffen.burr@rfds.net). Das wäre echt nett !!

DANKE !

Steffen

von emil (Gast)


Lesenswert?

Hi Chris & Steffen,

habe heute versucht, das LCD mithilfe der mylcd.lib zum Laufen zu
bringen; leider genau das selbe Ergebnis wie Steffen-schwarze Balken
/keine Initialisierung...:((

Das Blöde dran ist, dass die mylcd.lib eine exakte Übersetzung
(asm->c) des LCD Beispiels im Tutorial von Andreas ist, habe beide
ziemlich lang verglichen...und das (asm) Beispiel von Andreas
funktioniert schon, habe ich auch getestet...

Also, woran kann das liegen, hat jemand Rat/parat :))) ? Wäre doch
schön, mit nur 6 statt 7 Portpins auszukommen...

Grüss,
Emil

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.