mikrocontroller.net

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


Autor: araton15 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Niels Keller (niels-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Niels Keller (niels-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: araton15 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.