mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik sw spi tuning


Autor: marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

ich bin gerade dabei eine spi -> 1 wire bridge zu proggen und will dazu
einen 2343 nehmen (ohne ext. quarz).
für das slave transfer des sw spi habe ich folgende routine:

SLAVE_TRANSFER: ;r16 wird transferiert
cbi SCK_PORT
;cbi MISO_PORT ;set in SALVE_TRANSFER_0
cbi MOSI_PORT ;mosi pull-up off
cbi SCK_DDR
sbi MISO_DDR
cbi MOSI_DDR
ldi r20, 8 ;8 bits to transfer
SLAVE_TRANSFER_0:
sbi MISO_PORT
sbrs r16, 7 ;change if miso line should not be high
cbi MISO_PORT
SLAVE_TRANSFER_1:
sbis SCK_PIN ;wait for h on sck
rjmp SLAVE_TRANSFER_1
rol r16 ;get to next bit
sbr r16, 0
sbis MOSI_PIN ;change if bit in read register should not be set
cbr r16, 0
SLAVE_TRANSFER_2:
sbic SCK_PIN ;wait for l on sck
rjmp SLAVE_TRANSFER_2
subi r20, 1 ;one bit more to transfer
brne SLAVE_TRANSFER_0
ret

Kann man die Routine noch schneller machen (abgesehen von loop
unrolling - was nicht in frage kommt)? Gut wären so 8-11 clocks anstatt
13...

danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.