LCD und AVR Board

Gast #934255
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.
Gast
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
Gast
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
Angehängte Dateien:
Gast
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
Gast
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
Gast
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();

}


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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.