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
Gast
#2978121
Schade dass du nicht PortC benutzt sonst hätte ich sofort das hier eingeworfen: Beitrag "LCD am PORTC"
Macht es einen Unterschied an welchem Port ich den LCD angeschlossen hab?
Gast
#2978164
> 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.
-v ???
Gast
#2978169
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
Tut mir echt leid ich habe das falsche Datenblatt heruntergeladen.
Gast
#2978193
> -v
'verbose'.
'geht nicht' (und Variationen) ist so ziemlich die schlechteste
Fehlerbeschreibung, die man sich vorstellen kann.
Der LCD zeigt keine Reaktion
Gast
#2978211
Dir fehlt die komplette Initialisierung! Du sendest sofort Commandos.
Wie initialisiere ich den LCD?
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.
Gast
#2978239
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)
danke für die Antwort ich werds mal versuchen
Ich hab die Initialisierung jetzt geschrieben doch es hat sich leider nichts geändert.
Ich habe schon einen Fehler gefunden, hat aber nichts geholfen.
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
Gast
#2978320
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
Gast
#2978329
> 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.
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.
Gast
#2978346
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
Gast
#2978351
#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.
Mein Netzgerät ist auf 5V eingestellt. Pin1 ist 0V und Pin2 ist 5V. Sollte alles stimmen.
Ich habe jetzt #define F_CPU 1000000UL eingefügt, hat leider nichts geholfen
Gast
#2978387
Miss mal die Spannung am Pin 3
Die Spnnung an pin3 ist ca 0.9V
Gast
#2978432
Dann dreh mal am Potentiometer und schau, ob sich die überhaupt verwendet. 0.9V ist sicher zu wenig für den Kontrast.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

