LCD mit SPI steuern

Gast #41695
Lesenswert?
• ▲
▼
Hallo

Eine kleine Schaltung und ein bischen Code reichen aus, um ein 
LCD-Display mit HD44780 über SPI zu betreiben. Die Schaltung kommt mit 
einem CD4094 aus.
Kleinere Controller ( 2313 ) können auch benutzt werden. Ich habe dafür 
eine extra Routine geschrieben. Der max. Clock ist derzeit 1MHz.
Viel Spass.


Steffen
Angehängte Dateien:
Gast #41696
Lesenswert?
• ▲
▼
Hallo Steffen

dein Code ist einer der wenigen zum Thema, der in ASM geschrieben ist.
Mir gehts hier um das SPI.

Habe dort eine Frage zur Unterfunktion out_4094:

;--------------------------------------------------
; Ausgabe über SPI
;--------------------------------------------------
out_4094:
   push  data_4094
   cbi    LCD_PORT,Strobe        ; Strobe auf Low
   out   SPDR, data_4094
spil:
   sbis  SPSR, SPIF
   rjmp  spil                    ; jump wenn nicht fertig
   sbi   LCD_PORT,Strobe         ; Strobe High
   nop
   cbi   LCD_PORT,Strobe         ; Strobe Low Daten OK
   pop   data_4094
   ret                           ; return

dein Strobe ist wohl das /SS Pin.
Ich gehe mit bis nach der SPIF-Flag -Abfrage.
Danach setzt du das /SS Pin High (also SPI-Übertragung fertig).
Sollte davor nicht noch das SPDR ausgelesen werden, damit das SPIF-lag
wieder gelöscht wird?

Ich habe die SPI-Zugriffe immer so geschrieben:

cbi PortB, 4          ;/SS low
ldi temp, 0xF0        ; irgendwas zum senden
rcall spiout          ; an SPI übergeben
sbi PortB, 4          ;/SS high
; ========================= SPI Transmit ==============
spiout:
        out SPDR, temp
wait_spi:
  sbis SPSR,SPIF          ; Transmission complete?
        rjmp wait_spi
  ; SPIF is set

  in temp2, SPDR    ; release SPIF by reading Register

  ret                     ; back to programm..


Muss man denn das SPIF Flag nicht rücksetzen (indem man das SPDR
ausliesst) ?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.