Atmega8 an LCD: Zweite Zeile nicht ansteuerbar

Gast #1232059
Lesenswert?
• ▲
▼
Nabend,

bin absoluter Anfänger uaf dem Bereich der Mikrocontroller und habe 
heute in LCD (DATAVISION DV-20208) angeschlossen. Schaltung ist genau 
wie im Tutorial hier auf der Seite, ich benutze Bascom (die anderen 
Threats zu dem Thema beziehen sich leider auf C).

--------------------------------
 $regfile = "m8def.dat"
 $crystal = 4000000

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

   Cls
   Locate 1 , 1
   Lcd "Zeile 1"
--------------------------------
Gibt alles Fehlerfrei aus.

Wenn ich jedoch

   Locate 2 , 1
   Lcd "Zeile 2"
mache sind alle Kästchen schwarz (alle paar Minuten werde ndann für 2sek 
wirre Zeichen ausgegeben.



Ich hab das ganze mal in nen Loop gepackt - dann gings, jedoch war es 
ganz blaß weil der Inhalt natürlich dauernt aktualisiert wird. Packe ich 
ein wait in die Schleife wird wieder alles schwarz.



Kann mir jmd helfen? Im Datenblatt find ich nix passendes (ist seehr 
mager... nur die Pinbelegung ist abgedruckt... Soll aber HDD
44780 kompatibel sein.
#1232416
Lesenswert?
• ▲
▼
> mache sind alle Kästchen schwarz (alle paar Minuten werde ndann für 2sek
> wirre Zeichen ausgegeben.

Das klingt nach einem Problem, das entweder beim Displaycontroller zu 
liegen scheint, oder aber am Atmega liegt.


Ich würde folgende Vorgehensweise vorschlagen:
Größte Fehlerwahrscheinlichkeit: Du nutzt die Serielle Schnittstelle???? 
Wenn ja dann weg von Pd.0 und Pd.1. Lege die Datenpins und die 
Register/Enable -Leitung an andere Pins, z. B. an die Pins von Portc 
(0-5).

Am Atmega:
Teste mit einem anderem Programm, ob die Ports, die dem Display 
zugeordnet sind, funktionieren. Dazu einfach ein langsam toggelndes 
Signal anlegen und mit einem Multimeter messen. Funktionieren alle, dann 
anderes Display anschließen.
#1232569
Lesenswert?
• ▲
▼
hallo,

wenn ich deinen quelltext sehe, fällt mir der eintrag "Config Lcdbus = 4
" negativ auf. ich selbst habe diesen eintrag jedenfalls noch nie 
benötigt.

ansonsten wäre es vielleicht ein ansatz mal den cpu-takt 
runterzufahren... also die fuse auf 1megahertz und im programm den 
crystal entsprechend ändern.

wenns dann besser wird, lohnt sich blick auf die länge oder die 
verlegeart der lcd-kabel


gruss klaus
#1232573
Lesenswert?
• ▲
▼
Klaus De lisson wrote:
> wenn ich deinen quelltext sehe, fällt mir der eintrag "Config Lcdbus = 4
> " negativ auf.

Den Eintrag braucht er (ist sonst indirekt auch gesetzt), da er das 
Display nur mit 4 Datenleitungen statt 8 anspricht. Laut Hilfe muss der 
Eintrag vor der Initialisierung der Datenleitungen stehen (also ggF. 
ändern). Ich glaube aber eher, dass die Serielle Schnittstelle der 
Verursacher der Probleme ist.
Gast #1232974
Lesenswert?
• ▲
▼
Nabend und danke für eure Antworten!

In dem Tutorial hier wurden aber genau die gleichen Pins verwendet... 
Ich werde trotzdem nachher mal probieren ob eine Veränderung hilft.
Die Verbindung sollte eigtl in Ordnung sein... Kurze Kabel. An der 
Controllerplatine verlötet und das andere Ende mitm Steckboard.

Jmd hatte den Takt angesprochen... dazu hätte ich auch mal eine Frage, 
muss ja nicht nen neuen Threat aufmachen.

Ich habe einen 4mhz Quarz zusammen mit zwei 22pF Kondensatoren (wie in 
einigen Beispielschaltungen). Nun muss ich bekanntlich die Fusebits 
setzen und bin mir leider unsicher wie ich die Fuses setzen muss... In 
allen Tutorials werden andere Programme verwendet und bei mir stehen 
viel mehr Optionen zur Verfügung als da.

Leider ufnktioniert mit meinem USB Programmer nur das mitgelieferte Tool 
für die Fuses.. Könnti hr mir sagen welche Einstelung richtig ist? im 
Anhang mal ein Bild der Optionen.
Angehängte Dateien:
#1233053
Lesenswert?
• ▲
▼
also aus deiner liste ist wohl die unterste option für die fuses 
geeignet.
allerdings ist es im moment für dich erstmal garnicht sinnvoll da dran 
rumzufummeln, wenn der rest noch nicht läuft.

mir fällt allerdings dazu noch ein, dass der m8 ab werk ja mit 1mhz 
internal rc ausgeliefert wird. wenn du da also noch nix gefused hast 
wäre die einstellung in deinem programm (crystal 4000000) ja schonmal 
falsch.

gruss

Antwort schreiben

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.

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.