mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD Module 162C Displaytech


Autor: Marten Mcgonahy (mcgonahy148)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

nach meinen ersten Übungsstunden mit dem ATmega16 bin ich nun am Thema 
LCD angelangt und hab mir hierzu ein das oben genannte Display beim 
Reichelt gekauft: 
http://docs-europe.origin.electrocomponents.com/we...

So, anhand des hier beschriebenen Tutorials 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu... 
wollte ich es natürlich gleich mal ausprobieren.

Leider bisher ohne Erfolg. Befehlssatz und Zeiten müssten ja passen bei 
dem Modul, habs mir mal alles etwas durchgesehen.

Die schwarzen Balken auf dem LCD sind nicht da, es wird lediglich eines 
der Stellen kompett schwarz ausgegeben und ein Pfeil steht an anderer 
Stelle. Ausgegeben soll ja "Hallo World!" werden...

Meine Vermutung war anfangs Timingprobleme, dann hab ich entdeckt dass 
im Makefile 8MHz statt 16MHz (16MHz Quarz am Atmega) drinstand. Im 
Headerfile des c-files der lcd routine hab ich nun auch 16 MHz 
drinstehen.

Ähm, bevor einer fragt...Hardwaretechnisch ist es richtig verbunden, hab 
dazu Port C verwendet und möchte es im 4-Bit mode betreiben.

Die Kontrastspannun liegt auf GND, hoffe es hat nichts damit zu tun? 
Denn zumindest wird ja was angezeigt, wenn auch falsch.

Hat wer Erfahrungen mit dem LCD-Controller, oder wo könnten Fehler sein, 
wenn ich schon 1:1 den Code aus dem Tut. kopiert habe?!


Schöne Grüße,
MG

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ähm, bevor einer fragt...Hardwaretechnisch ist es richtig verbunden, hab
>dazu Port C verwendet und möchte es im 4-Bit mode betreiben.

Reflexartig: JTAG abgeschaltet?

MfG Spess

Autor: Marten Mcgonahy (mcgonahy148)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Reflexartig: JTAG abgeschaltet?

Oh oh...daran hab ich garnicht gedacht...

Autor: Marten Mcgonahy (mcgonahy148)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird die Funktion über die fusebits oder über mein Programm und Register 
deaktiviert?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Wird die Funktion über die fusebits oder über mein Programm und Register
>deaktiviert?

Es gibt beide Möglichkeiten. Wenn du nicht Debuggen willst ist wegfusen 
einfacher.

MfG Spess

Autor: Marten Mcgonahy (mcgonahy148)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem AVR-GCC Tut steht hier folgendes:

 /* Beispiel Anfang
     JTAG-Interface eines ATmega16 per Software deaktivieren
     und damit die JTAG-Pins an PORTC für "general I/O" nutzbar machen
     ohne die JTAG-Fuse-Bit zu aendern. Dazu ist eine "timed sequence"
     einzuhalten (vgl Datenblatt ATmega16, Stand 10/04, S. 229):
     Das JTD-Bit muss zweimal innerhalb von 4 Taktzyklen geschrieben
     werden. Ein Interrupt zwischen den beiden Schreibzugriffen wuerde
     die erforderliche Sequenz "brechen", das JTAG-Interface bliebe
     weiterhin aktiv und die IO-Pins weiterhin für JTAG reserviert. */

   MCUCSR |= (1<<JTD);
   MCUCSR |= (1<<JTD); // 2 mal in Folge ,vgl. Datenblatt fuer mehr 
Information


Wenn ich das in die main-routine reinsetze bevor ich das display 
initialisiere kommt weiterhin Müll raus, nur dass jetzt der Curser 
blinkt.

Dann schau ich mich mal um die fusebits...

Autor: Marten Mcgonahy (mcgonahy148)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fusebit auf 0 bringt leider auch nix :-(

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Fusebit auf 0 bringt leider auch nix :-(

Dann bleibt nur noch dein Programm übrig.

MfG Spess

Autor: Marten Mcgonahy (mcgonahy148)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne debugging und Oszi ist dass halt immer so ne Sache :-)

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

Bewertung
0 lesenswert
nicht lesenswert
Dann zeig doch mal dein Programm und den Schaltplan. Ich habe das 162C 
schon mehrfach ohne Probleme eingesetzt.
Hast Du vielleicht am Display DB0-3 statt DB4-7 benutzt? Das waren meine 
häufigsten Fehler dabei ;)

Die angehängte Datei ist mein AVR-Studio Projekt zum Test eines 
Displays. Das sollte funktionieren.
ATmega88, Fuses im Auslieferungszustand, also 1MHz.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

> Ausgegeben soll ja "Hallo World!" werden...

Vielleicht solltest du erst mal kleinere Brötchen backen. Speck das 
Programm auf das Notwendigste, also LCD-Init und Ausgabe von einem 
Zeichen, ab. Erst wenn das funktioniert, kannst du anfangen Strings 
auszugeben.

>Ohne debugging und Oszi ist dass halt immer so ne Sache :-)

Meine ersten LCDs/GLCDs habe ich auch ohne das (und ohne Internet) zu 
Laufen
bekommen.

MfG Spess

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.