Guten Tag zusammen,
ich habe ein Problem mit dem Display!

Ich betreibe das Display (noch) im Charaktermodus weil ich zunächst erstmal einfach testen wollte wie es so funktioniert und es funktioniert gut auch das Touchscreen arbeitet gut ABER ich kann einfach ums verrecken nicht in die Zeilen unterhalb von 7! Siehe Foto!

(Normalerweise soll genau so weiter geschrieben werden 8,9,10)

Bild hier  

Ich verstehe es nicht. Oberhalb der 8 Zeile kann ich wunderbar springen sowohl horizontal als auch vertikal. Ein zweites Display habe ich auch schon getestet, das selbe Verhalten!

So initialisiere ich das Display:

Code:
void GLCD_Init_C(void)
{
  GLCD_RES=0;
  Delay10KTCYx(1);
  GLCD_RES=1;

  GLCD_writecom(0x00);  // Mode Con
  GLCD_writedata(0x3C);  // Character Mode, Cursor blink  
  
  GLCD_writecom(0x01);  // Character Pitch
  GLCD_writedata(0x77);  // 8x8 Chars  

  GLCD_writecom(0x02);  // Number of Characters
  GLCD_writedata(19);  // 19 Zeichen <--->

  GLCD_writecom(0x03);  // Set Duty
  GLCD_writedata(0x4F);  // 80-1

  GLCD_writecom(0x04);  // Cursor Position
  GLCD_writedata(0x07);  // Line 1

  GLCD_writecom(0x08);  // Start Adresse Low
  GLCD_writedata(0x00);  // 0

  GLCD_writecom(0x09);  // Start Adresse High
  GLCD_writedata(0x00);  // 0

  GLCD_writecom(0x0A);  // Cursor lower adress
  GLCD_writedata(0x00);  // 1

  GLCD_writecom(0x0B);  // Cursor upper adress
  GLCD_writedata(0x00);  // 1
}

So stelle ich die Adresse ein:

Code:
void GLCD_SetAdress(unsigned char x, unsigned char y)
{
  unsigned short adress;
  adress=y*20+x;
  GLCD_writecom(0x0A);        // write adress low
  GLCD_writedata(adress&255);
  GLCD_writecom(0x0B);        // write adress high
  GLCD_writedata(adress/256);    
}
Die Routinen zum Schreiben auf dem Display:

Code:
void GLCD_writedata(unsigned char info)
{
	GLCD_RS=0;
	GLCD_write(info);
}

void GLCD_writecom(unsigned char info)
{
	GLCD_Busy();
	GLCD_RS=1;
	GLCD_write(info);
}

void GLCD_write(unsigned char info)
{
	GLCD_RW=0;
	GLCD_Data=info;
	Delay10TCYx(1);
	GLCD_Enable();		
}

void GLCD_Busy(void)
{
	GLCD_RW=1;
	GLCD_RS=1;
	GLCD_Enable();
	TRISD=0x80;	
	while(LATDbits.LATD7){}	
	TRISD=0x00;
}

void GLCD_Enable(void)
{
	GLCD_E=1;
	Delay10TCYx(1);
	GLCD_E=0;
}
Ich hoffe sehr, dass mir irgendwer von euch helfen kann ich verstehe es einfach nicht..

LG Nico