mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik lcd Display


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe an meinem STK500 mit ATmega 163l ein 4x20 Display
angeschlossen. Doch irgendetwas läuft bei Initialisierung nicht. Habe
mit CodeVision ein C Programm erstellt was aber nicht wirklich tut. Das
Display ist an aber ich bekomme keinen Text oder geschweige denn den
Cursor drauf.
Als Anlage für ich mal das Test-Programm bei vielleicht kann jemand mit
etwas Erfahrung mir weiter helfen.
Gruß Daniel

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

1. FALSCHE RUBRIK

2. Welcher Controller befindet sich auf deinem Display?


Mfg

Dirk

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dirk,

es ist ein HD44780.

In welchem Forum sollte ich es nochmal posten? (AVR)

Gruß Daniel

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Daniel: Der Code-Schnipsel ist so absolut nutzlos. Die entscheidenden
Teile fehlen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste doch mal den Quelltext von lcd_init(), damit kann man mehr
anfangen :)

Autor: Silas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dieter: was fehlt denn? Was sind die entscheidenden Teile?

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

Bewertung
0 lesenswert
nicht lesenswert
@Thorsten  und @Dieter

so hier noch das file lcd.lib

Autor: Silas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so sieht die lcd_init aus

// initialize the LCD controller
unsigned char lcd_init(unsigned char lcd_columns)
{
#asm
    cbi   __lcd_port,__lcd_enable ;EN=0
    cbi   __lcd_port,__lcd_rs     ;RS=0
#endasm
_lcd_maxx=lcd_columns;
_base_y[2]=lcd_columns+0x80;
_base_y[3]=lcd_columns+0xc0;
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x20);
_long_delay();
_lcd_write_data(0x28);
_long_delay();
_lcd_write_data(4);
_long_delay();
_lcd_write_data(0x85);
_long_delay();
#asm
    in    r26,__lcd_direction
    andi  r26,0xf                 ;set as input
    out   __lcd_direction,r26
    sbi   __lcd_port,__lcd_rd     ;RD=1
#endasm
if (lcd_read_byte0()!=5) return 0;
_lcd_ready();
_lcd_write_data(6);
lcd_clear();
return 1;
}
#endif

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.