SPI per Interrupt?

OP #1528858
Hi zusammen!

Ich suche im Moment einen Gedankenanstoß :)

Mache mir grad Gedanken über meine SPI-Kommunikation.
In nahezu jedem Programmbeispiel wird vor dem Übergeben des Datenbyte an 
SPDR im SPSR auf SPIF geprüft.
Nun stelle ich mir die Frage ob man das nicht eleganter per Interrupt 
löst...?

In der Wartezeit auf SPIF vergehen 16 Takte bei höchster 
SPI-Geschwindigkeit. 16 Takte stupides warten um im Grunde zwei Befehle, 
je einen Takt, auszuführen.
Würde ich jedoch nicht aktiv warten, sondern per SPI-Interrupt das 
nächste Byte übergeben, bedeutet es dass ich für das Aufrufen und das 
Verlassen der ISR schon 7 Takte benötige zzgl. pushen/poppen von 
AVR-GCC.
Sehe ich das richtig? Würde ja heissen das eine ISR gesteuerte 
SPI-Übertragung nicht mehr lohnt wenn man den SPI-Takt schon auf max 
hat, oder?
OP #1528996
Vielen Dank für die schnelle Antwort; etwas selbst richtig bemerken und 
damit auch richtig liegen sind ja zwei Paar Schuhe ;)

Und damit ich nich stundenlang tippe und versuche und am Ende alles 
unnötig war frag ich lieber mal...


schönen Abend erst mal (bis später ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.