mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Geräte und Interrupts


Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Wenn ein SPI Gerät in einer While(1) Schleife ständig gepollt wird, so 
sollte man drauf verzichten durch eine Interruptroutine (im Host) ein 
SPI Kommando zu senden. Durch die While Schleife die ständig ausgeführt 
wird, kann es sein, dass gerade das /CS aktiv (Low) ist und 
Datenaustausch stattfindet.

Kommt jetzt ein hochpriorer Interrupt (z.B Taste) und veranlasst ein SPI 
Kommando, so würde die aktuelle Übertragung gestört, und das System 
verhält sich komisch.
Kann man sowas irgendwie umgehen?

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du könntest z.b. bein eintritt in die SPI tx/tx funktion global alle 
interrupts sperren und am ende wieder einschalten. wenn das nicht geht 
(weil interrupts währenddessen laufen sollen) eine art spinlock 
benutzen...

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohen jetzt auf Dein Konzept (Pollen und IRQ für SPI) eingehen zu wollen 
oder zu können: wenn in einer eben nötigen Poll-Routine kein IRQ 
auftreten darf, muß man den eben solange sperren...

Bei den üblichen CPUs wird er dann nach Freigabe abgearbeitet und da ist 
der Poll-Zyklus ja dann sicher zu Ende.

while {
IRQ sperren
pollen
IRQ freigeben
}

Ob es im Konzept einen Sinn macht, überhaupt so zu verfahren, mußt Du 
wissen.

Gruß aus Berlin
Michael


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.