Forum: Mikrocontroller und Digitale Elektronik Atmega8 an LCD: Zweite Zeile nicht ansteuerbar


von araton15 (Gast)


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.

von Niels K. (niels-k)


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.

von Klaus D. (kolisson)


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

von Niels K. (niels-k)


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.

von Klaus D. (kolisson)


Lesenswert?

@ Niels Keller

jetzt verstehe ich deine aussage zur seriellen schnittstelle. er hat 
ungünstigerweise die portpins der seriellen benutzt. da könnte natürlich 
eine ursache sein.

gruss

von araton15 (Gast)


Angehängte Dateien:

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.

von Klaus D. (kolisson)


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

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.