Interrupthandling (SPI) beim AT91SAM7

OP #817004
Moin,

ich hab da ein Problem, komme da nicht weiter...

Ich möchte einen Umsetzer von SPI auf UASRT bauen, also Daten kommen auf 
dem SPI rein und werden dann an den USART weitergereicht.

Mein Problem:

Ich hab keine Ahnung, wie ich die Interrupts vom SPI behandeln soll, 
normalerweise muß man ja einen IRQ nach erhalt "abnicken", also 
maskieren. Nur wie geht das hier? Sobald ich einen Interrupt (RDRF, 
RXBUFF, etc) über das SPI_IER aktiviere erhalte ich sofort laufend 
Interrupts, die ich zwar auch abfangen kann aber nicht wieder maskieren 
kann... Dadurch verhungert mein USART, hier dringt kaum ein Interrupt 
durch, er ist quasi tot. Ich kann die Interrupts nur ganz deaktivieren, 
das ist aber nicht wirklich Sinn der Sache...

BTW: Wenn ich nur den NSS_IRQ nutze, dann ist das System nach reset auch 
erstmal still bis ich vom SPI-Master angesprochen werde. Dann kriege ich 
laufend IRQs, normal, aber wenn ich fertig bin laufen diese weiter, 
selbst wenn Master und Slave physikalisch getrennt werden... Ich denke 
also ich muß den IRQ als "in Bearbeitung" abnicken (so hab ich das mal 
gelernt), kann ich aber nicht, gibt kein Register hierfür (Interruptmask 
Register ist ja read-only, kurioserweise ist dies immer 0, egal was ich 
aktiviert habe..)

Any ideas?, bzw. was mache ich falsch???
Gast
hallo,
hast du das spi interface auch richtig init.?
kannst du deine code mal posten?


mit der folgenden Zeile wird der Interrupt durch Auslesen des 
Status-Register bestätigt:
1
dwstatus = AT91C_BASE_SPI->SPI_SR;

gruss
gerhard

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.