A
Arne Rossius
Guest
Hallo,
ich habe hier ein LCD mit HD44780-Controller, welcher sich höchst
eigenartig verhält. Eigentlich funktioniert alles, bis auf die
Positionierung des Adresszeigers in der 2. Zeile (es ist ein 2x16 LCD).
Folgendes funktioniert (AVR Assembler):
ldi temp, 0x8F
rcall lcdcmd
ldi temp, ':'
rcall lcdchr
Das Zeichen wird dann an der gewünschten Stelle (1. Zeile ganz am Ende)
angezeigt. In der 2. Ziele funktioniert das nicht. Die Befehle 0xA8 bis
0xAF positionieren den Cursor am Anfang der Zeile (das sollte eigentlich
nur 0xA8 tun), ab 0xB0 ist das Zeichen dann nicht mehr sichtbar (keine
Ahnung, ob es völlig schief geht oder der Adresszeiger außerhalb des
sichtbaren Bereichs [00;0F]&[A8;B7] gesetzt wird).
Die Routinen zur LCD-Ansteuerung habe ich selbst geschrieben, aber ich
denke nicht, dass es daran liegt, der Rest funktioniert ja. Also woran
könnte es liegen? Wenn gewünscht, poste ich gerne noch meine Routinen.
Das LCD wird übrigens im 8-Bit-Modus angesteuert.
Gruß,
Arne
ich habe hier ein LCD mit HD44780-Controller, welcher sich höchst
eigenartig verhält. Eigentlich funktioniert alles, bis auf die
Positionierung des Adresszeigers in der 2. Zeile (es ist ein 2x16 LCD).
Folgendes funktioniert (AVR Assembler):
ldi temp, 0x8F
rcall lcdcmd
ldi temp, ':'
rcall lcdchr
Das Zeichen wird dann an der gewünschten Stelle (1. Zeile ganz am Ende)
angezeigt. In der 2. Ziele funktioniert das nicht. Die Befehle 0xA8 bis
0xAF positionieren den Cursor am Anfang der Zeile (das sollte eigentlich
nur 0xA8 tun), ab 0xB0 ist das Zeichen dann nicht mehr sichtbar (keine
Ahnung, ob es völlig schief geht oder der Adresszeiger außerhalb des
sichtbaren Bereichs [00;0F]&[A8;B7] gesetzt wird).
Die Routinen zur LCD-Ansteuerung habe ich selbst geschrieben, aber ich
denke nicht, dass es daran liegt, der Rest funktioniert ja. Also woran
könnte es liegen? Wenn gewünscht, poste ich gerne noch meine Routinen.
Das LCD wird übrigens im 8-Bit-Modus angesteuert.
Gruß,
Arne