Vom HD44780 lesen

Gast #20060
Lesenswert?

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

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