Forum: Mikrocontroller und Digitale Elektronik LCD funktioniert nicht Atmega32


von Robert R. (robert_r)


Angehängte Dateien:

Lesenswert?

Hallo
Da ich vor kurzem in die Welt der Mikrocontroller einsteigen wollte habe 
ich mir einen Atmega32 16pu gekauft.
Alles hat gut funktioniert doch jetzt habe ich mir einen 16x2 LCD von 
ANAG VISION gekauft.
Doch wenn ich diesen an den Mikrocontroller anschließe und programmiere 
passiert gar nichts.

Er ist so angeschlossen:

VSS   0V
Vdd   5V
V0    10K Potentiometer
RS    PB0
R/W   PB1
E     PB2
DB0-DB7  PA0-PA7

Der C-code (von newbiehack.com) ist im Anhang.

Ich hoffe ihr könnt mir weiterhelfen

lg Robert

von Thomas (Gast)


Lesenswert?

Schade dass du nicht PortC benutzt sonst hätte ich sofort das hier 
eingeworfen:
Beitrag "LCD am PORTC"

von Robert R. (robert_r)


Lesenswert?

Macht es einen Unterschied an welchem Port ich den LCD angeschlossen 
hab?

von g457 (Gast)


Lesenswert?

> passiert gar nichts

-v plz

> Macht es einen Unterschied an welchem Port ich den LCD angeschlossen
> hab?

Bei korrekter Konfiguration nicht. PORTC ist der Klassiker bei 
vergessenem JTAG.

von Robert R. (robert_r)


Lesenswert?

-v ???

von Spess53 (Gast)


Lesenswert?

Hi

>Alles hat gut funktioniert doch jetzt habe ich mir einen 16x2 LCD von
>ANAG VISION gekauft.

Das ist aber ein einzeiliges Display.

Such dir mal das Datenblatt vom Displaycontroller (KS0066). Deine 
Initialisierung sieht nicht sehr datenblattkonform aus.

MfG Spess

von Robert R. (robert_r)


Angehängte Dateien:

Lesenswert?

Tut mir echt leid ich habe das falsche Datenblatt heruntergeladen.

von g457 (Gast)


Lesenswert?

> -v

'verbose'.

'geht nicht' (und Variationen) ist so ziemlich die schlechteste 
Fehlerbeschreibung, die man sich vorstellen kann.

von Robert R. (robert_r)


Lesenswert?

Der LCD zeigt keine Reaktion

von Bastler (Gast)


Lesenswert?

Dir fehlt die komplette Initialisierung!

Du sendest sofort Commandos.

von Robert R. (robert_r)


Lesenswert?

Wie initialisiere ich den LCD?

von Thomas (kosmos)


Lesenswert?

Schau mal hier
http://www.ece.uidaho.edu/ee/classes/ECE341/datasheets/SamsungKS0066U.pdf
auf Seite 24 bzw. 26

am besten aber du schaust welcher Controller genau verbaut ist und holst 
dir das Datenblatt dieses Herstellers.

von Bastler (Gast)


Lesenswert?

Das steht normalerweise im Datenblatt.

Commands:

0x03
0x03
0x03
0x02
0x28
0x0C
0x04
0x01

...und Wartzeiten dazwischen nicht vergessen.


(zumindest meine Variante mit 4-Bit Mode)

von Robert R. (robert_r)


Lesenswert?

danke für die Antwort ich werds mal versuchen

von Robert R. (robert_r)


Angehängte Dateien:

Lesenswert?

Ich hab die Initialisierung jetzt geschrieben doch es hat sich leider 
nichts geändert.

von Robert R. (robert_r)


Angehängte Dateien:

Lesenswert?

Ich habe schon einen Fehler gefunden, hat aber nichts geholfen.

von Jannis C. (kabelwurm)


Lesenswert?

Es ist immer richtig, sich an neue Dinge zu wagen, aber dann sollte man 
auch in der Lage sein, das Datenblatt richtig zu lesen. Es hilft dir 
nicht, wenn dir alles vorgesagt wird, eine strukturierte Arbeitsweise 
ist elementar.
--> Datenblatt lesen
Gruß Jannis

von Fire Eagle (Gast)


Lesenswert?

Hallo!

Ich glaube fast, deine Bitmasken sind nicht ganz richig.
Meiner Meinung nach wird REG &= ~1<<POS zu REG &= 0<<POS, du willst aber 
eine 1 dorthin schieben. Versuche mal Kalmmern: REG &= ~(1<<POS)

LG

von g457 (Gast)


Lesenswert?

> Der LCD zeigt keine Reaktion

Das ist schon mal gut. Weil dann liegt der erste Fehler nicht(!) an der 
Initialisierung. Dreh mal am Kontrast solange bis Du einen Balken oder 
Zeichen sehen kannst.

von Robert R. (robert_r)


Lesenswert?

1. Ich habe jetzt die klammern überall eingefügt das hat aber leider 
nichts geholfen.

2. Egal wie weit ich das Potentiometer drehe ich bekomme nichts zu 
sehen.

von Fire Eagle (Gast)


Lesenswert?

Hast du die richtige Spannung?
Nicht verpolt?
Die schwarzen Balken müsstest du auf jeden Fall sehen können, auch ohne 
Initialisierung.
Schau dei mal das an: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD

von Klaus (Gast)


Lesenswert?

#define F_CPU 16000000UL  // Das hier vor

#include <avr/io.h>
#include <util/delay.h>  // Dem hier einfügen sonst stimmt das Timing 
nicht.

Den Wert der F_CPU musst noch an deinen Quarz anpassen.
Wenn du keinen benutzt dann 1000000UL eintragen.

von Robert R. (robert_r)


Lesenswert?

Mein Netzgerät ist auf 5V eingestellt.
Pin1 ist 0V und Pin2 ist 5V.
Sollte alles stimmen.

von Robert R. (robert_r)


Lesenswert?

Ich habe jetzt #define F_CPU 1000000UL eingefügt,
hat leider nichts geholfen

von Fire Eagle (Gast)


Lesenswert?

Miss mal die Spannung am Pin 3

von Robert R. (robert_r)


Lesenswert?

Die Spnnung an pin3 ist ca 0.9V

von Fire Eagle (Gast)


Lesenswert?

Dann dreh mal am Potentiometer und schau, ob sich die überhaupt 
verwendet.
0.9V ist sicher zu wenig für den Kontrast.

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.