LCD initialisieren

Gast #532310
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
Angehängte Dateien:
Gast #532469
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
#532493
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
#532774
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...
#532811
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.

...
Angehängte Dateien:
#533054
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren