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 #934333
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 #934504
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 #935260
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 #935278
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 #935287
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 #935306
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

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.

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.