mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 2*16 Problem (codevision)


Autor: Tim Herold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Moin,

Ich habe ein Problem mit eier LCD Anzeige. Sie ist richtig
angeschlossen und besitzt 2*16 Zeichen. Das Problem ist, wenn ich in
der while schleife einen Buchstaben anzeigen will, bleibt das Display
an der 8 Stelle stehen. Ich benutze die LCD Libary von CodeVision. Ich
habe bei dem Programm uch 16 eingestellt. Es liegt auch nicht an der
Anzeige, es ist bei einer anderen neuen genauso.

Hier mein Code :

lcd_init(16);
while (1)
      {
       lcd_putchar(0x44);
       delay_ms(1000);



      };

Was läuft hier falsch ?

Vielen Dank im Vorraus

Tim

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Display ist logisch gesehen nicht 1*16, sondern 2*8.  Die
,,zweite Zeile'' hat dann einen Offset im RAM, 0x20 oder 0x40.

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#if LCD_TYP == 1
// *************************************************************
// ************ Lcd DDRAM register for 2x40 display ************
// *************************************************************
#define MAXLINELENGHT 40
prog_char screenpos[2] = { 0x80, 0xC0 };
#endif



#if LCD_TYP == 2
// *************************************************************
// ************ Lcd DDRAM register for 2x24 display ************
// *************************************************************
#define MAXLINELENGHT 24
prog_char screenpos[2] = { 0x80, 0xC0 };
#endif



#if LCD_TYP == 3
// *************************************************************
// ************ Lcd DDRAM register for 4x20 display ************
// *************************************************************
#define MAXLINELENGHT 20
prog_char screenpos[4] = { 0x80, 0xC0, 0x94, 0xD4 };
#endif



#if LCD_TYP == 4
// *************************************************************
// ************ Lcd DDRAM register for 4x16 display ************
// *************************************************************
#define MAXLINELENGHT 16
prog_char screenpos[4] = { 0x80, 0xC0, 0x90, 0xD0 };
#endif


das sind jeweils die startadressen der einzelnen zeilen. dahin solltest
du schreiben.

Autor: Udo Drees (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo , habe überhaupt noch keine Ahnung wie das mit der LCD Ansteuerung
funktioniert. Kannst Du mir das Programm in C schicken?
Wo kriege ich mehr Infos und Beispielprogramme in C?

Vielleicht meldest Du Dich mal zum Erfahrungsaustausch
udodrees@gmx.de

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.