Delay in der Interruptroutine

Gast #2703172
Lesenswert?

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.
#2703212
Lesenswert?

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.
#2703839
Lesenswert?

@  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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren