-
-
Hallo Blamaster,
evtl. ist ein Tipp dabei:
- groszügige Verzögerungsschleifen (Display Controller sind keine Rennflitzer)
- Abfrage des Busy-Flags
-----------------------------------------------------------------------
Display_initiieren:
rcall warte20 ; Reset vom Display abwarten
ldi Befehl,0b00111000 ; Befehl "Function Set"
rcall Display_Befehl_schreiben
rcall warte20
rcall Display_Befehl_schreiben
rcall warte10
rcall Display_Befehl_schreiben
rcall warte1
rcall Display_bereit
ldi Befehl, 0b00111000 ; lade Befehl "2-zeilig, 5x8"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b00001000 ; lade Befehl "Display aus"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b000000001 ; lade Befehl "Display löschen"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b000000110 ; Befehl "Cursor nach rechts"
rcall Display_Befehl_schreiben
rcall Display_bereit
ldi Befehl, 0b000001111 ; lade Befehl "Display ein"
rcall Display_Befehl_schreiben
ret
-----------------------------------------------------------------------
Erklärungen:
- rcall wartenxx: Subroutine mit Verzögerung um xx mSekunden
- rcall Display_Befehl_schreiben: Subroutine, die Datenport auf "schreiben" setzt und Befehl ausgibt
- rcall Display_bereit: Subroutine die Datenport auf "lesen" setzt und wartet, bis das Busy-Flag frei ist
Gruß.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen