www.mikrocontroller.net

Forum: Compiler & IDEs Kann nicht die zweite Zeile der LCD einschalten


Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

habe vor langem einen LCD ersteigert und wollte mal es ansteuern.
Habe dazu die AVR-Tutorial durchgelesen aber kann einzig die 2. Zeile 
nicht einschalten. Meine Vermutung ist die Falsche Initialisierung bin 
mir aber nicht sicher...

Bin für jede Meinung dankbar, denn versuche schon seit drei Tagen 
daran...

grüße
Khan

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Meine Vermutung ist die Falsche Initialisierung bin
>mir aber nicht sicher.

Die Vermutung ist 100% richtig.

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, dass freut mich ;-)

Aber kannst du mir vielleicht auch sagen was ich machen muss damit dies 
funktioniert? Bin noch ein Neuling... Wie gesagt habe eine halbe 
Ewigkeit daran herumprobiert....


Grüße
Khan

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber kannst du mir vielleicht auch sagen was ich machen muss damit dies
>funktioniert?

Das Display richtig initialisieren nach Datenblatt?
Ansonsten ist mir leider gerade meine Glaskugel
wieder mal kaputt gegangen ;)

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
;-) Schade dass ich den Datenblatt nicht verstanden habe .

Vielleicht kannst du mir wenigstens sagen, ob ich hier auch beim 
Initialisieren auch dreimal senden muss...

    _delay_ms(41);
   LCD_PORT &= 0xF0;
   LCD_PORT |= 0x03;
   LCD_PORT &= ~(1<<LCD_RS);      /* RS auf 0 */
   lcd_enable();                   /*1. */

    _delay_ms(41);
   lcd_enable();                   /*2. */

    _delay_ms(41);
   lcd_enable();                   /*3. */



grüße
Khan

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Displaytyp/-bezeichnung?
kompletter Source-Code?
uC?

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Khan wrote:
> ;-) Schade dass ich den Datenblatt nicht verstanden habe .

schade, daß hier niemand raten kann wie dein...

- datenblatt vom display
- schaltplan
- sourcecode

aussieht. so wird dir auch niemand helfen(können).

außerdem hättest du es mal im richtigen forum probieren sollen...

ERST Forum Regeln lesen, verstehen, dann posten!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Vielleicht kannst du mir wenigstens sagen, ob ich hier auch beim
>Initialisieren auch dreimal senden muss...

Kann ich nicht.

1. Welches Display? Genaue Bezeichnung.
2. Wie angeschlossen? Pinliste?
3. Welcher Controller?
4. Welche Taktfrequenz?

Mein Reifen ist platt. Kannst DU mir sagen wieso?

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger wrote:
>>Vielleicht kannst du mir wenigstens sagen, ob ich hier auch beim
>>Initialisieren auch dreimal senden muss...
>
> Kann ich nicht.
>
> 1. Welches Display? Genaue Bezeichnung.
> 2. Wie angeschlossen? Pinliste?
> 3. Welcher Controller?
> 4. Welche Taktfrequenz?
>
> Mein Reifen ist platt. Kannst DU mir sagen wieso?

...der dritte im bunde ;-) ja, schon scheiße diese glaskugel, geht immer 
grade dann kaputt wenn man sie braucht! :-D

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. CV4162C wie im Anhang
2.

------------------------------------------------------------
PD7  PD6   PD5    PD4     PD3   PD2   PD1    PD0

--       --       RS    E        DB7   DB6   DB5   DB4
--       --                      DB3   DB2   DB1   DB0
                  1=Befehl  Enable
                  0=Daten
wie im Code.

3. ATmega8
4. 1MHz

Dein Reifen ist platt weil du vergessen hast dass ich ein Neuling 
bin.... ;-)

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal ob das Display einen HD44780 Controller hat bzw. einen 
kompatiblen dazu. Betreibst du das Display dann im 4-Bit oder 8-Bit 
Mode?


Gruß -
A.

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Khan wrote:
> 1. CV4162C wie im Anhang
welcher anhang ?

wäre schon schön wenn man nicht erst das datenblatt raussuchen muss um 
dir zu helfen...

> 2.
>
> ------------------------------------------------------------
> PD7  PD6   PD5    PD4     PD3   PD2   PD1    PD0
>
> --       --       RS    E        DB7   DB6   DB5   DB4
> --       --                      DB3   DB2   DB1   DB0
>                   1=Befehl  Enable
>                   0=Daten
> wie im Code.

dann poste doch bitte mal deinen code!

> 4. 1MHz
ist das auch eingestellt in der display routine? warum nicht 4 oder 8mhz 
?

> Dein Reifen ist platt weil du vergessen hast dass ich ein Neuling
> bin.... ;-)
aber auch neulinge können lesen, oder ?

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

Bewertung
0 lesenswert
nicht lesenswert
Sorry an alle!!!Der Anhang ist beim hochladen verschwunden....

Habe grad gesehen dass die Datei zu groß ist..
Deswegen ist es nicht hochgeladen worden

jetzt hier die Anhänge..

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PDF ist zu groß, deshalb hier der Link

http://www.cloverlcd.com/pdf/CV4162C.pdf

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- wo ist die frequenz eingestellt ? (muß normal in display.h ode .c 
eingestellt sein)


- schaltplan?

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

Bewertung
0 lesenswert
nicht lesenswert
Habe kein Schaltplan. Benütze STK500.
ist so bestückt wie im Code beschrieben.

Frequenz ist im Makefile definiert.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Initsequenz für den 4 Bit Mode steht auf Seite 15.

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so weit bin ich auch gekommen, allerdings weis ich nicht ob ich 
hier den Startsequenz auch 3mal senden mus wie im AVR-Tutorial 
beschrieben?

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Khan wrote:
> Genau so weit bin ich auch gekommen, allerdings weis ich nicht ob ich
> hier den Startsequenz auch 3mal senden mus wie im AVR-Tutorial
> beschrieben?

dein display hat nen ST7066U controller, der ist nicht 100% HD 
kompatibel. baue einfach die im datenblatt und von holger erwähnte 
init-sequenz 1zu1 nach, dann wirds laufen!

schreibt dein display eigentlich in der ersten zeile zu 100% korrekt?

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann mache ich so.

Ja die 1. Zeile Arbeitet richtig.. (nur mit Zeichen und String getestet)

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Khan wrote:
> Ok, dann mache ich so.
>
> Ja die 1. Zeile Arbeitet richtig.. (nur mit Zeichen und String getestet)

dann sollte die 2. auch richtig arbeiten. schreib doch mal was 
"richtiges" rein, nicht nur einen buchstaben in die letzte spalte....

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt habe auch ein String gesendet.
einen langen. ;-)

lcd_string("Halllooooooooooooooxywert");

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich mich erinnere, gibt es genau bei der Initialisierung für den 
2-Zeilen-Mode Unterschiede zwischen den vielen halbkompatiblen 
HD-ähnlichen Controllern.

Also genau nach Datenblatt vorgehen!


Kleine Zwischenfrage:
Ist die zweite Zeile genauso hell im Hintergrund wie die erste, oder 
sieht man in der zweiten dunklere Pixel?


Die zweite Zeile hat andere Adressen für die Zeichen!



Gruß -
A.

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm...

wie ist es eigendlich, wenn die 2. aktiv ist soll es doch auch die 
Kontraste zeigen, wie beim 1ten?

Oder schaltet sich der 2. einfach ein wenn mann dort schreibt?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Khan wrote:

> wie ist es eigendlich, wenn die 2. aktiv ist soll es doch auch die
> Kontraste zeigen, wie beim 1ten?

Ja.

> Oder schaltet sich der 2. einfach ein wenn mann dort schreibt?

Nein.

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Khan wrote:
> Wie gesagt habe auch ein String gesendet.
> einen langen. ;-)
>
> lcd_string("Halllooooooooooooooxywert");

lt. deinem Code geht der aber an Zeile 1!!

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, die 2te Zeile ist dunkel...

sprich, kein kontrast...

grüße

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe auch in die 2 Zeile
   set_cursor (16, 2);
   lcd_data ('C');
   lcd_string("Halllooooooooooooooxywert");

geschrieben, aber tut nichts...

grüße

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh je. Ich bin mal so frei und korrigiere dich:

1. Ersetze in Zeile 70 im File lcd_routines.c
   /* 4Bit  2 Zeilen  5x7  (Funktion Set)*/
    lcd_command(0x28);

durch das vermutlich richtige Command-Byte für 2-Zeilen:
    lcd_command(0x2c);


Entsprechend der Doku des Controllers:
http://www.sitronix.com.tw/sitronix/SASpecDoc.nsf/...


2. Mach die Delay-Routine erheblich länger. Du weißt nicht wie genau 
dein Takt läuft?


3. Sende die Init-Sequenz dreimal wie in deiner Datei im Comment 
angegeben, aber keine Schleife drumherum!



Gehts dann?



Gruß -
Abdul

Autor: Khan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Abdul

zu 1. Hatte ich schon gemacht
zu 2. Du hast recht mit dem Takt bin ich noch nicht ganz eingestiegen
zu 3. ok

Es funktioniert....

Bedanke mich

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.