Forum: Mikrocontroller und Digitale Elektronik LCD initialisieren


von dieter (Gast)


Angehängte Dateien:

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

von Karl H. (kbuchegg)


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'.

von dieter (Gast)


Lesenswert?

nein das habe ich nicht ....

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



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

Ist das richtig?

dieter

von Karl H. (kbuchegg)


Lesenswert?

dieter wrote:
> nein das habe ich nicht ....
>
> Wie schaltet man das denn ab?
> Also mit welcher Fuse?
>
>
>
> kurz gegoogelt:
>
1
> .org 0x00
2
> ; zusätzlich abschalten von JTD in MCUCSR, 2 mal laut Datenblatt)
3
>   ldi r16,(1<<JTD)
4
>   out MCUCSR,r16
5
> 
6
>   out MCUCSR,r16
7
>
>
> 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

von dieter (Gast)


Angehängte Dateien:

Lesenswert?

vielen Dank für de Hilfe!!

dieter

von dieter (Gast)


Angehängte Dateien:

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

von Stefan W. (wswbln)


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...

von Hannes L. (hannes)


Angehängte Dateien:

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.

...

von ecslowhand (Gast)


Lesenswert?

Was für ein Display benutzt Du denn?

von Hannes L. (hannes)


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...

...

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.