Hi, wenn ich möchte, dass in der Interruptroutine in bestimmten fällen gewartet wird,darf ich da eine Wartezeit einfügen? Was ist, wenn diese Wartezeit größer ist, als die des Timerinterrupts? Muss ich dann in der Interruptroutine die Interrupts ausschalten?
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.
Sven schrieb: > wenn ich möchte, dass in der Interruptroutine in bestimmten fällen > gewartet wird,darf ich da eine Wartezeit einfügen? Ich würde sagen ." klares Nein", da dies immer Kontraproduktiv ist. Das lässt sich bestimmt auch anders lösen. Gruss Klaus
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.