Gast
#20060
Hallo,
schreiben auf dem Display klappt super, nur das zurücklesen der Daten
aus dem RAM des Display will nicht. Verkabelt ist folgendermaßen an
PORTC
rsbit=0
rwbit=1
enablebit=2
daten=4-7
Diese Routing soll nun lesen und das ganze nach lcd_data schreiben
lcd_read_data:
; 4-7 (Daten als Eingang), Rest als Ausgang
ldi temp, 0b00001111
out DDRC, temp
; RS und RW setzen
ldi temp, 0b00000011
out PORTC, temp
; Kurz enablen und danach warten
rcall lcd_enable
rcall delay50us
; Erstes nibble nach lcd_data
in lcd_data, PINC
; Hintere Teil kicken
andi lcd_data, 0b11110000
; RS/RW wieder setzen
ldi temp, 0b00000011
out PORTC, temp
; kurz enabled + warten
rcall lcd_enable
rcall delay50us
; Diesmal nach temp lesen
in temp, PINC
; aufräumen
andi temp, 0b11110000
; nibble tauschen
swap temp
; nun noch beide nibble zusammen bringen
or lcd_data, temp
; wieder alles als Ausgang setzen (damit man wieder schreiben kann)
ldi temp, 0xFF
out DDRC, temp
ret
Grüße
Tobias