Interrupt-Koinzidenz PIC18F

OP #3283747
Lesenswert?
• ▲
▼
Im Datenblatt des PIC18F4525 finde ich die Aussage „Low-priority 
interrupts are not processed while high-priority interrupts are in 
progress.” Streng genommen, sagt der Satz, dass ein Low-Priority 
Interrupt ins Leere geht, wenn gerade ein High-Priority Interrupt 
abgearbeitet wird. Wenn der LP-Interrupt ein Sekunden-Timer ist, dann 
kann es also passieren, dass eine Sekunde ausfällt. Ist das korrekt?

Oder, - wird der HP-Interrupt abgearbeitet und unmittelbar anschließend 
der LP-Interrupt nachgeholt?

Grüße, attersee
#3283777
Lesenswert?
• ▲
▼
Du solltest nur beachten, dass die Abarbeitung des HP-Interupts nicht 
länger als die Zeitspanne des LP-Interupts dauert. Andernfalls verlierst 
du die entprechenden Events da das jeweilige IF nur auf den Interupt 
hinweist, nicht jedoch auf die Anzahl. Ausnahme ist der UART, der Buffer 
ist 2 Byte tief, kann also quasi 2 Interupts speichern und das IF wird 
erst zurückgesetzt wenn der UART-Buffer komplett leer ist.
OP #3284525
Lesenswert?
• ▲
▼
Hallo spontan. Das ist ok. Systemspezifische 'Terminals' lesen über 
einen allseitig optogekoppelten Bus einen längeren von einer 'Zentrale' 
gesendeten Daten-Burst. Private Anwendung. Selbst gemachtes Protokoll. 
Lange Leitungen. Mir geht es um robuste Kommunikation. Nochmals danke.
Grüße, attersee
Gast #3284535
Lesenswert?
• ▲
▼
Es gibt zwei Sachen, processed and signalized. Ein Interrupt wird 
signalized
wenn das entsprechende Flag ausgelöst wird. Dies ist in HW und 
unabhängig
von der CPU. Dann gibt es processed, also daß ein Interrupt angesprungen
wird. Wenn das Flag ausgelöst wird, während ein low priority interrupt
in Gange ist, und dann wird dieser von einem High priority Interrupt 
unterbrochen, wenn dieser beendet wird dann der low priority interrupt
weitergearbeitet wird, beendet wird, und erst dann könnte der inzwischen
eingetroffene low priority Interrupt abgearbeitet werden. Da kann unter
Umständen ein Interrupt verloren gehen, oder das Timing ausser spec 
sein.
OP #3286885
Lesenswert?
• ▲
▼
Kurzer Abschlussbericht. Die SW läuft nun mehr als 48 Stunden im 
Dauerbetrieb und es kam zu keinem Übertragungsfehler. Eine Verzögerung 
beim LP Sekundentakt konnte ich nicht feststellen. Die Impuls-Zählung 
liegt weit innerhalb der Quarztoleranz. Ist auch kein Wunder, bei einer 
Wahrscheinlichkeit von etwa 0,7 Kollisionen pro 24 h, des (ach so 
langen) HP Interrupts mit dem LP Zeitgeber. Also, alles bestens.

Danke für alle Beiträge, attersee

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.