Datenaustausch mit ISR

Gast #363475
Lesenswert?
• ▲
▼
Im AVR-GCC-Tutorial ist schön beschrieben, dass man beim Lesen von
Variablen > 8 Bit, die durch eine ISR aktualisiert werden, vorher
Interrupts mit cli deaktieren muss, um zu verhindern, dass die ISR
während des Lesens den Variablenwert ändern.

Nun ist die Frage, was man tun kann, wenn man alle Interrupts, z.B.
beim Auswerten bestimmter Ereignisse braucht und sich nicht erlauben
kannn diese zu deaktivieren?

Hat vielleicht jemand eine Idee?
Gast #363476
Lesenswert?
• ▲
▼
Das Lesen von Variablen braucht zwar u.U. ein paar Taktzyklen, aber die
einzelnen Interrupt-Flags werden ja trotz globalem Disable gesetzt,
wenn ein Interrupt-Ereignis auftritt. Wenn man dann mit sei() die
Interrupts wieder freigibt, werden alle in der Zwischezeit
aufgelaufenen Interrupts entsprechend ihrer Priorität der Reihe nach
abgearbeitet, sofern man nicht per SW die Flags gelöscht hat. Im
Normalfall reicht das von der Reaktionszeit noch aus. OK, ich weiß ja
nicht, was Du für Verarbeitungsgeschwindigkeiten brauchst...
Gast #363477
Lesenswert?
• ▲
▼
muss ich mal noch durchrechnen. Ich arbeite mit 16 Mhz und habe 6000
Ereignisse pro Sekunde zu verarbeiten, d.h. wechselnde Flanken
auzuwerten, bei einem Quadratur Geber müssen 2 Spuren, alle Flanken
erfasst werden. Insgesamt 60 Flanken pro Umdrehung. Wenn ich mit 6000
Umdrehungen pro Minute fahre, sind das 6000 Flanken pro Sekunde.

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.