Delay in der Interruptroutine

Das kommt darauf an (tm). Welchen µC verwendest Du?
Beim AVR kann immer nur ein Interrupt aktiv sein, d.h. im Interrupt sind 
andere Interrupts per default gesperrt.  Ist eine Routine zu lang, 
können Interrupts "verloren gehen" - z.B. bei auto-reload Timer.
Gast
Sven schrieb:
> Was ist, wenn diese Wartezeit größer ist, als die des Timerinterrupts?

Genau das ist das Problem. Worum möchtest du in der ISR warten?

Meist ist es günstiger in der ISR nur ein Flag zu setzen, dass dann der 
Hauptschleife signalisiert, dass entsprechene Abläufe gestartet werden 
sollen.
Sven schrieb:
> wenn ich möchte, dass in der Interruptroutine in bestimmten fällen
> gewartet wird,darf ich da eine Wartezeit einfügen?

Naja, du darfst da machen, was du willst. Es ist nur keine gute Idee ;-)
Eine der wichtigsten Regeln zur Interrupt-Programmierung ist, daß ISRs 
auf die Laufzeit bezogen immer so kurz wie möglich sein sollen. Da ist 
ein Delay natürlich so ziemlich das Schlimmste, was man tun kann, da 
dessen Zweck ja genau das Gegenteil ist.

> Was ist, wenn diese Wartezeit größer ist, als die des Timerinterrupts?

Hängt vom µC ab.
@  Sven (Gast)

>wenn ich möchte, dass in der Interruptroutine in bestimmten fällen
>gewartet wird,darf ich da eine Wartezeit einfügen?

Kommt drauf an. Mikrosekunden oder Sekunden?

>Was ist, wenn diese Wartezeit größer ist, als die des Timerinterrupts?

Dann ist das ein Fehler. Siehe Interrupt.

>Muss ich dann in der Interruptroutine die Interrupts ausschalten?

Sind sie sowieso meistens. Das Problem ist zu 100% besser ohne Wartezeit 
lösbar.

Antwort schreiben

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