LCD KS0070B 2. Zeile Problem

Gast #1369170
Lesenswert?

Hallo, ich betreibe ein Displaytech 162 mit KS0070B controller an einem 
Atmega8 im 4bit modus. Meine init sieht so aus:
void lcd_init(void)
{

    DDRB = 0xD7;//((1 << LCD_E_PIN) | (1 << LCD_RS_PIN) | (1 << 
LCD_DATA_PIN_D4) | (1 << LCD_DATA_PIN_D5) | (1 << LCD_DATA_PIN_D6) | (1 
<< LCD_DATA_PIN_D7) );
    PORTB=0;
     _delay_ms(200);


    PORTB = 0x03;
    lcd_e_toggle();
    _delay_ms(5);
    lcd_e_toggle();
  _delay_ms(1);
    lcd_e_toggle();
  _delay_ms(5);
  PORTB=0x20;
  lcd_e_toggle();
    _delay_ms(5);
    // ab hier im 4-Bit-Modus
    lcd_command(0x28);        // Funktions-Set: 2 Zeilen, 5x7 Matrix, 4 
Bit
    _delay_ms(5);            // Zeit zum Umschalten lassen
    lcd_command(0x08); //Display off
_delay_ms(5);
    lcd_command(0x01); //Clear
_delay_ms(5);
    lcd_command(0x06); //Entrymode
_delay_ms(5);
  lcd_command(0x0C);
_delay_ms(15);
}


Soweit funktioniert auch alles, nur wenn ich in zeile 2, also ab Adresse 
0x40 schreiben will erscheint nix in Zeile 2.
Beim start wird nur Zeile 1 mit schwarzen kästchen gefüllt.



void lcd_gotoxy(u08 x, u08 y)
{
  if(y==0){
    lcd_command((1 << LCD_DDRAM) + 0x00 + x);
  }else{
    lcd_command((1 << LCD_DDRAM) + 0x40 + x);
  }
}

Diese Funktion benutze ich zum Zeilenwechseln.


HILFE! :)
Gast #1369191
Lesenswert?

Hi, versuch mal in die nicht vorhandene dritte Zeile zu schreiben. Ich 
habe hier ein 4x16-Display herum liegen, wo die 4 Zeilen nach folgendem 
Schema vertauscht sind:

1
3
2
4

Vielleicht ist das bei dir auch so?!

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