mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD initialisieren


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche schon seit Stunden mein LCD anzusteuern.
Doch es klappt einfach nicht :(
Könnt ihr mir sagen wo der Fehler liegt?

Dabei benutze ich
- LCD-Modul WINTEK WD-C2704M-1HNN  von  www.pollin.de (4x27)
- ATmega16, Port C
- Pins 4-7 am Port des µC sind auch an den Pins 4-7 des LCD
- Pin 3 des µC ist am PINENABLE2 des LCD
- Pin 2 des µC ist am PINENABLE1 des LCD
- Pin 1 des µC ist am RS des LCD
- Pin 0 des µC ist am R/W des LCD

- und das Programm im Anhang  (ich vermute, da ist der Fehler drin)

Ich hoffe Ihr könnt mir helfen...

dieter

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor wir hier das Programm analysieren:

> - ATmega16, Port C

Das JTAG Interface hast du per Fuse abgeschaltet?
Das liegt beim Mega16 am Port C und ist per Default
auf 'ein'.

Autor: dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein das habe ich nicht ....

Wie schaltet man das denn ab?
Also mit welcher Fuse?



kurz gegoogelt:
.org 0x00
; zusätzlich abschalten von JTD in MCUCSR, 2 mal laut Datenblatt)
  ldi r16,(1<<JTD)
  out MCUCSR,r16

  out MCUCSR,r16

Ist das richtig?

dieter

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dieter wrote:
> nein das habe ich nicht ....
>
> Wie schaltet man das denn ab?
> Also mit welcher Fuse?
>
>
>
> kurz gegoogelt:
>
> .org 0x00
> ; zusätzlich abschalten von JTD in MCUCSR, 2 mal laut Datenblatt)
>   ldi r16,(1<<JTD)
>   out MCUCSR,r16
> 
>   out MCUCSR,r16
> 
>
> Ist das richtig?

Ja das würde gehen.

Du sollst aber solche Dinge nicht ergoogeln, sondern
im Datenblatt deines Prozessors nachlesen.
Das Datenblatt kriegst du von Atmel und da steht alles drinn
was du über deinen Prozessor wissen musst.

Eine andere Alternative wäre es, das JTAG Interface
dauerhaft über die Fuses abzuschalten. Dazu liest du
in deinem Brennprogramm die Fuses vom Prozessor ein,
änderst das JTAGEN Bit in den anderen Zustand und schreibst
die Fuses wieder zurück - Fertig.

>
> dieter

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

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank für de Hilfe!!

dieter

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

Bewertung
0 lesenswert
nicht lesenswert
Ich habs nochmal ausprobiert, aber ich finde den Fehler nicht.. :(

Wo könnte der Fehler denn jetzt liegen?

Das LCD zeigt nämlich nur zwei schwarze Balken - dabei ist es 
vierzeilig!


dieter

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwei schwarze Balken bedeutet, dass das LCD seine interne 
Power-up-Initialisierung erfolgreich abgeschlossen hat und nun auf 
Eingaben vom steuernden Rechner/µC wartet. Du solltest Dein Augenmerk 
also auf Deine Initialisierungsroutine richten.

Ich hab' mit jetzt Dein Progrämmchen nicht genauer angeschaut, aber Du 
solltest dringend mal den "Getting started"-Code von Dave VanHorn 
anschauen, wie man das mit den Interruptvektoren am Anfang des 
Programmes macht. Wenn bei Dir (org 0x00) irgendein Interupt 
(versehentlich) aktiviert ist, läuft der Prozessor in's Nirvana...

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
dieter wrote u.a.:
> Ich habs nochmal ausprobiert, aber ich finde den Fehler nicht.. :(
>
> Das LCD zeigt nämlich nur zwei schwarze Balken - dabei ist es
> vierzeilig!

Solange es schwarze Balken zeigt, ist es nicht initialisiert. Dass es 
vierzeilig ist, sieht nur so aus. Denn es enthält zwei Controller, von 
denen jeder zwei Zeilen ansteuert. Du musst es also ansteuern wie zwei 
getrennte 2x40-LCDs.

Im Anhang findest Du ein Programm, dass dieses LCD mit einem Mega8 
ansteuert. Die Ansteuerung ist aber schon etwas komfortabler als bei der 
Tutorial-Version. Vielleicht kannst Du ja mal drüberschaun und 
Anregungen für eigene Routinen finden.

...

Autor: ecslowhand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein Display benutzt Du denn?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ecslowhand wrote:
> Was für ein Display benutzt Du denn?

Das steht im ersten Beitrag dieses Threads, das 4x27 von Wintek, das es 
bei Pollin für knapp 5 Euro gibt. Ein wunderbares LCD mit großer 
Schrift, leider ohne Backlight und (für die jüngeren Kollegen) leider 
nicht blau...

...

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.