wenn ich einen text > 8 zeichen ausgeben will, muss ich dann die ausgegebenen zeichen mitzählen - oder wie macht man das geschickt? denn bis zur 8ten stelle kann ich die bytes ja einfach nacheinander schreiben, aber beim 9ten zeichen müsste ich vorher die addresse ändern.. (hoffe du verstehst, was ich meine)
Ja ich verstehe, was Du meinst Da bin ich schon durch \/
Mir ist auch nichts besseres eingefallen, als die Zeichen mitzuzählen
Hab mir einen Register dafür 'gesichert'
Allerdings zähle ich nicht die Zeichennummer sondern DDRAM Adressen, also Anfangswert 0x80.
Es hat den Vorteil, daß man eben ein Command senden kann ohne von Zeichennummer auf Adresse umrechnen zu müssen, sehr sinnvoll, wenn man kurz an CGRAM zugreifen will(eigene Zeichen übertragen z.B.)
Also
CGRAM Adresse einstellen
Data reinschreiben,
wenn fertig ein Command mit dem Inhalt von Zeichenregister absetzten
und schon steht der Cursor, da wo er war...

Ich schicke Dir ein Codeschnippsel

Zeichenzaehler speichert mir halt die Adresse
param1 ubergibt Variablen an Funktionen.
Zusätzlich prüfe ich noch, ob man nicht mehr als 16 Zeichen schreiben will,
wenn ja wird vorne weitergemacht.

Ich hoffe, daß Du Assembler lesen kannst, in C habe ich ein 1 Zeiliges Display noch nicht gemacht, und es ist mir gerade nach Assembler

Code:
loop_ascii:	
	cpi Zeichenzaehler,0x88
	brne loop_2_2
	;wir sind an der Schwelle zwischen Zeichen 8 und 9 hier muß zuerst neue Adresse gesendet werden
	push param1 ; das Zeichen Sichern
	ldi param1,0xC0 ;DDRAM auf Adresse 40 Einstellen->9. Zeichen
	mov Zeichenzaehler,param1
	rcall LCD_command
	pop param1
loop_2_2:
	inc Zeichenzaehler
	cpi Zeichenzaehler,0xC9;Pruefen, ob wir ueber die Displaygrenze hinaus sind
	brlo loop_2_3
	ldi Zeichenzaehler,0x80 ;wenn ja fangen wir von vorne an
	push param1
	mov param1,Zeichenzaehler
	rcall LCD_command
	pop param1
loop_2_3:
	rcall LCD_data
	rjmp loop