Bascom Avr + LCD

Gast #156463
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
Gast #156464
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
Gast #156466
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
Gast #156468
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
Gast #156469
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.