Und wieder das Display

#1405860
Lesenswert?

Sieht merkwürdig aus, dass die ersten beiden Zeilen aktiv sind, und in 
der 3. Zeile nur die erste Pixelzeile. Das könnte an der vermurksten 
Init liegen:
1
  PORTA &= ~(1 << LCD_RS);        // RS auf LOW
2
  lcd_enable();
3
  delay_ms(6);
4

5
  lcd_enable();
6
  delay_ms(2);
7
  lcd_enable();
8
  delay_ms(2);

Du solltest vorher auch einen Wert an PORTC legen, ehe du Enable pulsed.
Gast #1405906
Lesenswert?

Hab die ersten drei Schritte so gemacht wie auf
http://www.sprut.de/electronic/lcd/index.htm#init
beschrieben. Und länger gewartet als angegeben.
Das Bild bleibt das gleiche. Ist die Init immer noch Mist? Ich verstehe 
das nicht, ich habe an die Angaben aus dem entsprechenden Tutorial hier 
auf mikrocontroller.net gehalten und nur die Portpins geändert und das 
wie auf meinem System nötig auf den 8-Bit-Modus geändert.

Also: Init immer noch Müll oder Display bei den Pommes?

DANKE für Eure Tipps!!!

D.
Angehängte Dateien:
Gast #1405920
Lesenswert?

Dein Display hat einen KS0073 Controller.
Der braucht eine andere Init statt der 3 x 0x30:
1
void lcd_init(void)
2
{
3
  delay_ms(50);
4
  PORTA &= ~(1 << LCD_RS);        // RS auf LOW
5

6
  LCD_PORT = 0x30;
7
  lcd_enable();
8
  delay_ms(20);
9

10
  lcd_command(0x3C);            // 8-bit Modus mit RE=1
11
  lcd_command(0x09);            // 4 Zeilen
12
  lcd_command(0x38);            // 8-bit-Modus mit RE=0
13
  lcd_command(0x0f);            // Display ein, Cursor ein, Blinken
14
  lcd_command(0x01);            // Display l�schen
15
  lcd_command(0x06);            // inkrement, kein Scrollen
16
  
17
  lcd_clear();
18
}
Persönliche Seite #1405921
Lesenswert?

Dennis schrieb:
> @Benedikt:
>
> Du hast mich nicht verstanden. Die Datei, die ich zuletzt hier
> hochgeladen habe, ergibt mit PN kompiliert das, was ich fotografiert
> habe. Kompiliere ich mit AVR Studio geht es wie am Schürchen.

Hast Du in einer Umgebung vielleicht irgendwo die Taktrate F_CPU (als 
define) korrekt angegeben und in der anderen nicht? Von der hängt ja 
auch die korrekte Bestimmung der Wartezeiten ab.
Gast #1405926
Lesenswert?

#ifdef KS073
// Offset's anders als bei HD44780 Displays !
// 2 Lines
// Zeile 1 -> 0x80+0x00 = 0x80
// Zeile 2 -> 0x80+0x40 = 0xC0

// 4 Lines
// Zeile 1 -> 0x80+0x00 = 0x80
// Zeile 2 -> 0x80+0x20 = 0xA0
// Zeile 3 -> 0x80+0x40 = 0xC0
// Zeile 4 -> 0x80+0x60 = 0xE0
Gast #1405929
Lesenswert?

@Michael S: die Taktfrequenz steht in der Makefile korrekt. Und beide 
Programme nutzen dieselbe... In der delay.h habe ich die auch geändert. 
Daran kann es also nicht liegen. Habe das auch gerade nochmal alles 
überprüft.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren