Forum: Mikrocontroller und Digitale Elektronik Bascom Avr + LCD


von Alber (Gast)


Lesenswert?

Hallo

Ich habe ein 20*4 LCD an einen Atmega8 Avr µC angeschlossen.

Mit folgenen Code wird es angesteuert:
-->
$regfile = "m8def.dat"
$crystal = 3686400


Config Lcd = 20 * 4
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 ,
Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5

Cls
Locate 3 , 2
Lcd "Hallo "

End
<--

Leider wird die Darstellung auf den Display falsch angezeigt.
Ich hatte das Display schonmal vor einiger Zeit angesteuert und kann
mich erinnern das dazu einen Code aus den Inet verwendet habe indem es
eine "Anpassung" (für Reichelt Displays) gegeben hat,kann den Code
aber nicht mehr finden.

Kann mir jemand da mal auf dir Sprunge helfen ?

Gruß
Alber

von Christian (Gast)


Lesenswert?

Hallo,

meines Wissens kannst du dir das "Config Lcdbus = 4" sparen.
Bevor du auf dem LCD etwas ausgeben kannst, musst du es noch mit
"Initlcd" initialisieren, sonst siehst du da nix. Der Rest dürfte so
passen.

Gruß,
Christian

von Alber (Gast)


Lesenswert?

Danke für den Tip

Ich habe den Code nun doch noch gefunden und geändert, und das Display
zeigt immernoch mist an :o(
Werde wohl nochmal die Leitungen überprüfen.

Gruß
Alber

von Simon Küppers (Gast)


Lesenswert?

Was zeigt es genau an? Die richtigen Buchstaben nur vertauscht? Falsche
Zeile? Oder Pixelmüll?

Es kann sein, dass das Reichelt Display eine andere RAM-Belegung hat.
Also die Stellen anderen RAM-Stellen zugehören als "normal". Dagegen
kannst du nur ein bisschen in der Library in BASCOM rumpfuschen.
Ansonsten -> assembler und per Hand machen

von formtapez (Gast)


Lesenswert?

> kann mich erinnern das dazu einen Code aus den Inet verwendet habe
indem es eine "Anpassung" (für Reichelt Displays) gegeben hat,kann
den Code aber nicht mehr finden.

Meinst Du dieses hier?
http://www.mikrocontroller.net/forum/read-4-114302.html

MfG
formtapez

von Alber (Gast)


Lesenswert?

Danke genau das war der Beitrag den ich gesucht habe, leider
funktioniert es mit dieser Anpassung auch noch nicht.

Angezeigt werden fasche Buchstaben und Zahlen,ich habe mal
verschiedenen Ports des Avr versucht (PC0-PC5 und PC4-PD0+PC6) und
jedesmal kam was anderen dabei herraus teilweise wurden auch Befehle
wie 'CLS' oder 'Locate' nicht ausgeführt.

Gruß
Alber

von Skragan (Gast)


Lesenswert?

als erstes: lcdbus rausschmeissen, du benutzt das lcd ja schließlich im
pinmode! initlcd brauchst du nicht, das macht der compiler automatisch
beim ersten lcd-befehl. du brauchst das nur, wenn du dein lcd mal
resetten willst. hat ein 20*4 nicht schon 2 enable-leitungen ? wenn ja,
musst du diese auch noch verbindung und mit config E2=???? bekanntgeben.
wenn es keine 2 enable hat, sollte es einfach so gehen.

so sollte es gehen (wenn die verdrahtung stimmt!):

>$crystal = 3686400
benutzt du einen externen 3,6mhz quarz ?

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 ,
Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5

display on
Cls
Locate 3 , 2
Lcd "Hallo "

End

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.