mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD und AVR Board


Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Gemeinde!

Ich habe ( wie schon 1000 Andere vor mir ) ein Problem mit meinem LCD.

Display          : von Display Elektronik GmbH
                   DEM 20485 SYH-LY
                   LCD-Controller KS0066 (4x20)
Microcontroller  : ATMega32
Programmiergerät : AVR Evaluations-Board (Version2.0.1)

Programmiert in  : C  (AVR Studio / PonyProg)

Ich sitze seit ca. 14 Tagen an diesem LCD und bekomme es nicht zum 
Laufen.
Habe diverse Tutorials, Beiträge gelesen... (nix hilft)


Hat Jemand Erfahrungen mit der Hardware???
Kann mir Jemand mit einem Tip weiterhelfen?

Bei Interesse schicke ich alle Codes etc.. Bin für alle Tips dankbar!

Vielen Dank im Voraus.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan wäre nett. Was geht denn nicht ?

Versuchs mal mit einer 44870 Lib. Der Kontroller ist kompatibel.

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Pete K.
Das geht ja schnell hier...

Schaltplan : Genau so ist mein LCD mit dem ATMega32 verdrahtet...

http://www.s-jordan.de/index.php?page=display

Beim einschalten zeigen sich in 1 und 3 Zeile schwarze Balken...
(Initialisierung klappt)
Meine Vermutung ist, dass etwas mit der Frequenz des Microcontrollers
nicht stimmt???
Ich habe keine Ideen mehr...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier wirst du geholfen:

Beitrag "Wettaufruf "Probleme mit LCD""

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Beim einschalten zeigen sich in 1 und 3 Zeile schwarze Balken...
>(Initialisierung klappt)

Nö. Zeigt nur an, das das LCD (wahrscheinlich) noch funktioniert. Nach 
erfolgreicher Initialisierung sind die Balken weg.
Ohne, daß du etwas mehr bekanntgibst, wirst du wahrscheinlich kaum Hilfe 
erwarten können.

MfG Spess

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

Bewertung
0 lesenswert
nicht lesenswert
Hallo. OK spess53!
Bloß wo soll ich anfangen. Ich werde alles bekannt geben, was Du 
möchtest.

Ich fange am Besten bei den Fuses an. ( ATmega32 )

- So habe ich meine Fuses gesetzt. (Dateianhang)

Hoffe ich habe den Beitrag richtig verstanden...
http://www.mikrocontroller.net/articles/AVR_Fuses


Falls weitere Informationen benötigt werden, ich gebe alles Preis, bloß 
ich möchte erstmal nicht unnötig das Forum zumüllen...


Danke euch

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann niemand helfen?

Schade.

Liebe Grüsse

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hängt das LCD an Port C? JTAG deaktivieren!

>Beim einschalten zeigen sich in 1 und 3 Zeile schwarze Balken...
>(Initialisierung klappt)
Eher ein Zeichen, das die Initialisierung nicht klappt.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Genau so ist mein LCD mit dem ATMega32 verdrahtet...

Dort steht aber z.B. nur Px... Wo hast du das an deinem Controller 
konkret angeschlossen?
Von welchem Programm stammen die Fuses-Einstellungen?

MfG Spess

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das LCD am PORTB.

Ich bin schon alles mehrmals durchgegangen (Aschluss etc)

Am portC (eher unwichtig) ist eine lichtschranke angeschlossen. Wenn die
Lichtschranke verdeckt ist, geht eine LED für 5s an (auch port C).
Parallel dazu geht die LCD Beleuchtung an... das klappt (hat ja auch 
nichts mit der Initialisierung zu tun)

Gruss

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S. Die Fuses habe ich  mit PonyProg eingestellt.

Ich habe bedenken, ob die Zeiten bei der Initialisierung korrekt sind???

Das kann wiederum auf die Fuses zurückzuführen sein...





.....

void display_init(unsigned char eingangsport)

{

switch(eingangsport)

{

case 'A':  zeiger_auf_port=&PORTA; DDRA=0xFF; break;

case 'B':  zeiger_auf_port=&PORTB; DDRB=0xFF; break;

case 'C':  zeiger_auf_port=&PORTC; DDRC=0xFF; break;

case 'D':  zeiger_auf_port=&PORTD; DDRD=0xFF; break;

}



power=1;

*zeiger_auf_port |= (1<<LCD_PW);

wait_10_millisek();

*zeiger_auf_port = (light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

wait_10_millisek();

*zeiger_auf_port = 
(1<<LCD_D1)|(1<<LCD_D0)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

// 4-bit Mode

*zeiger_auf_port= 
(1<<LCD_D1)|(1<<LCD_D0)|(light<<LCD_BL)|(power<<LCD_PW);

wait_500_mikrosek();

*zeiger_auf_port= 
(1<<LCD_D1)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

// RE=1

*zeiger_auf_port = (1<<LCD_D1)|(light<<LCD_BL)|(power<<LCD_PW);

*zeiger_auf_port= 
(1<<LCD_D3)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

*zeiger_auf_port= 
(1<<LCD_D3)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW);

wait_500_mikrosek();

*zeiger_auf_port= 
(1<<LCD_D1)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

// RE=1

*zeiger_auf_port = (1<<LCD_D1)|(light<<LCD_BL)|(power<<LCD_PW);

*zeiger_auf_port= 
(1<<LCD_D3)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

*zeiger_auf_port= 
(1<<LCD_D3)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW);

wait_500_mikrosek();

*zeiger_auf_port= (light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

// 4-Zeilen Mode

*zeiger_auf_port= (light<<LCD_BL)|(power<<LCD_PW);

*zeiger_auf_port= 
(1<<LCD_D3)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

*zeiger_auf_port= 
(1<<LCD_D3)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW);

wait_500_mikrosek();

*zeiger_auf_port= (light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

// RE=0

*zeiger_auf_port= (light<<LCD_BL)|(power<<LCD_PW);

*zeiger_auf_port= 
(1<<LCD_D0)|(light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

*zeiger_auf_port= (1<<LCD_D0)|(light<<LCD_BL)|(power<<LCD_PW);

wait_10_millisek();

*zeiger_auf_port= (light<<LCD_BL)|(power<<LCD_PW)|(1<<LCD_EN);

// Display Ein, Cursor Aus, Cursor Nicht-Blinkend

*zeiger_auf_port= (light<<LCD_BL)|(power<<LCD_PW);

*zeiger_auf_port= 
(0<<LCD_D0)|(1<<LCD_D1)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW)|(1<< 
LCD_EN);

*zeiger_auf_port= 
(0<<LCD_D0)|(1<<LCD_D1)|(1<<LCD_D2)|(light<<LCD_BL)|(power<<LCD_PW);

wait_10_millisek();

clear_display();

}


.....

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Jetzt muss ich dir leider sagen, das meine Kenntnisse bezüglich PonyProg 
als auch C mehr oder weniger rudimentär sind.
Von PonyProg weiss ich nur, das es da einen 'umgekehrten' Zusammenhang 
zwischen 'Häkchen' und Fuse gibt.

MfG Spess

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kein problem. Trotzdem vielen Dank.

ich werde mir doch lieber neues LCD kaufen. Bekomme dieses Ding einfach 
nicht zum Laufen.

Liebe Grüsse

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wenn du auf Assembler umsteigst, könnte ich dir sofort helfen.

MfG Spess

Autor: Karl B. (gustav)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Doktere seit zwei Monaten dran rum.
Mein Ergebnis:
im Anhang
Versuch es doch auch mal.
Gruß gustav...

Da sind noch ein paar bugs drin.
OK.
Aber:
die Sequenz muß lauten:
Hex30
Hex28
Hex28
Hex01
Hex02
Hex06
Hex0E
Ende Initialisierung zweizeilig

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl B.

Im Assembler und in Bascom ist es kein Problem.

Was ich bezwecke ist eher  eine LCD Ansteuerung in C.
Initialisierung etc.

Ich danke Dir trotzdem für Deine Mühe.

Liebe Grüsse

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.