Externe unterbricht auf MPIDE Teil 2: setIntVector() (5 / 10 schritt)

Schritt 5: SetIntPriority(): was geht?


Was in aller Welt ist eine "Interrupt-Priorität" und warum brauchen wir es eingerichtet?

Nehmen wir an, dass der ISR (Interrupt Service Routine, wenn Sie aus Teil 1 erinnern) für Int1 beschäftigt ausführen, aber bevor es fertig ist, Int2 ausgelöst wird, und versucht anzurufen ist es eigenen ISR (nennen wir sie ISR1 und ISR2, für Bequemlichkeit). Was passiert? Setzt ISR1 bekommen auf Pause während ISR2 ausgeführt wird, oder hat ISR2 zu warten, bis die ISR1 abgeschlossen ist? Die Antwort hängt von der Priorität des Int1 und Int2.

Lassen Sie uns sagen, dass Int1 eine Priorität der 4 hat und Int2 eine Priorität von 5 hat. Da Int2 eine höhere Priorität hat, bekommt in diesem Fall ISR1 angehalten, so dass ISR2 ausgeführt werden können. ISR2 erledigt, nimmt ISR1 dann, wo es aufgehört hat.

Es wechseln wir jetzt so Int1 eine Priorität von 5 hat und Int2 eine Priorität der 4 hat. In diesem Fall da Int1 die höhere Priorität hat, hat ISR2 zu warten, bis ISR1 erfolgt ausführen, bevor sie beginnen können.

Priorität Ebenen reichen von 1 bis 7, wobei 7 ist am höchsten. Eigentlich gibt es auch eine Prioritätsstufe 0, aber das gilt Menschen mit Behinderungen, und wird nicht ausgeführt. Bei unserem Programm setzen wir die Priorität der Int2 auf 4.

(Beachten Sie, wie wir noch "_EXTERNAL_2_VECTOR" verwenden? "Das werden ein bisschen wichtig sein.)

"Warten..." Ich höre Sie denken (mit meine Gedanken zu lesen-Kräfte), "was passiert, wenn zwei mit der gleichen Priorität unterbricht werden ausgelöst?"

Gute Frage! In unseren bisherigen Beispielen haben Int1 und Int2 Priorität 4, wartet dann ISR2 immer auf ISR1 bis Ende ausführen, bevor sie beginnen können.

Aber warten Sie! Es gibt noch mehr!

In Verbindung stehende Artikel

Externe unterbricht auf MPIDE Teil 1: attachInterrupt()

Externe unterbricht auf MPIDE Teil 1: attachInterrupt()

Hallöchen! So hat es eine Weile, da billige Roboter Tutorial die Metall-Räder gemacht, aber das ist weil ich Interrupts für euch frei war. Ich fand ein paar Wege dies zu tun, aber ich werde mit der einfachsten Methode am Anfang, so dass ich mich zum
Debouncing Interrupts mit MPIDE Teil 1: Brute-Force

Debouncing Interrupts mit MPIDE Teil 1: Brute-Force

Es ist an der Zeit, nicht wahr?Willkommen zurück! Wenn Sie meine I'bles bis zu diesem Zeitpunkt verfolgt habe, habe ich Ihnen zwei verschiedene Möglichkeiten zum Einrichten von Interrupts im MPIDE gezeigt, mit attachInterrupt() und setIntVector(). In
Debouncing Interrupts mit MPIDE Teil 2: RC-Filter

Debouncing Interrupts mit MPIDE Teil 2: RC-Filter

Hey Jungs! Bist du bereit für den zweiten Teil meiner debouncing Serie?"Aber Jay!" Höre ich Sie Fragen: "Ich wusste, es war das erste Mal!" Oder vielleicht Sie sagte "Moment mal, debouncing? Was ist das?" Ich bin nicht ganz s
Timer unterbricht auf die DP32

Timer unterbricht auf die DP32

Timer! Ich freue mich, endlich Timer auf meinem Lieblings-Board, DP32abdecken!Denken Sie daran, wie damals, als ich über externe Interrupts schrieb? Wenn Sie nicht mit Interrupts und deren Funktionsweise vertraut sind, empfehle ich das Tutorial zuers
Wie man eine Batterie elektrische Uhr auf Solarstrom - Teil IIa laufen

Wie man eine Batterie elektrische Uhr auf Solarstrom - Teil IIa laufen

Dieser dritte Beitrag rundet meine Bemühungen zu diesem Thema und ist die einfachste und billigste ausführen. Teile I und II einen super Kondensator verwendet, um Strom für die Stunden der Dunkelheit zu speichern, während hier wir irgendeine Form der
Wie man eine Batterie elektrische Uhr auf Solarstrom - Teil II laufen

Wie man eine Batterie elektrische Uhr auf Solarstrom - Teil II laufen

Wir erreicht viel mit einem einzigen 2 Volt Solarzelle aufladen einen super Kondensator teilweise habe ich aber zu gehen weiter, wir müssen hinzufügen mehr Solarzellen, die wiederum in die Notwendigkeit einer zusätzlichen Kontrolle in die Ladeschaltu
Wie eine Batterie laufen elektrische Uhr auf Solarstrom - Teil I

Wie eine Batterie laufen elektrische Uhr auf Solarstrom - Teil I

Der erste Teil zeigt, wie eine herkömmliche Batterie elektrische Uhr betrieben werden kann, mit einer einzigen 2 Volt-Solarzelle und einem super Kondensator. In einigen Teilen der Welt ganzjährigen Betrieb ist möglich aber saisonale Mangel an Sonnenl
Richten Sie externe Treiber auf Smoothieware Sbase 1.2 Steuerung mit Hilfe der E1-Pins!

Richten Sie externe Treiber auf Smoothieware Sbase 1.2 Steuerung mit Hilfe der E1-Pins!

Inhalt dieses Instructable:ProloqueTreiberprobleme KühlkörperNicht mehr existierenden Y TreiberSetup Smoothieware E1 als unsere Y-Achse verwendenY-Treiber - originalY-Treiber - Verwendung E01Komplette Treiber Steckerbelegung DiagrammExterner Motor Sc
Grundrechenarten: Lektion 3 - Operationen auf Zahlen--Teil 2

Grundrechenarten: Lektion 3 - Operationen auf Zahlen--Teil 2

Teil 2 von 3. In dieser Lektion besteht darin, Sie mit einem selbst-Tutorial auf die typische Operationen, die auf Zahlen. Dazu gehören: Absolutwert, Gegensätze, Addition, Subtraktion, Multiplikation, Division und einfachen Exponenten. Reihenfolge de
Grundrechenarten: Lektion 3 - Operationen auf Zahlen--Teil 1

Grundrechenarten: Lektion 3 - Operationen auf Zahlen--Teil 1

Teil 1 von 3. In dieser Lektion besteht darin, Sie mit einem selbst-Tutorial auf die typische Operationen, die auf Zahlen. Dazu gehören: Absolutwert, Gegensätze, Addition, Subtraktion, Multiplikation, Division und einfachen Exponenten. Reihenfolge de
Grundrechenarten: Lektion 3 - Operationen auf Zahlen--Teil 3

Grundrechenarten: Lektion 3 - Operationen auf Zahlen--Teil 3

Teil 3 von 3. In dieser Lektion besteht darin, Sie mit einem selbst-Tutorial auf die typische Operationen, die auf Zahlen. Dazu gehören: Absolutwert, Gegensätze, Addition, Subtraktion, Multiplikation, Division und einfachen Exponenten. Reihenfolge de
Lust auf drei Teil-Geflecht.

Lust auf drei Teil-Geflecht.

Hier ist ein Lieblings-Haar-Stil von mir. Es ist ganz einfach zu tun. Eine mit langen Haaren kann dies tun, es sieht gut aus mit jedem Outfit!!Schritt 1: Einen niedrigen Pferdeschwanz zu machen.Schritt 2: Fügen Sie Finger durch den unteren Teil von e
BaW-Bot Teil 1: Build ein Arduino auf einem Brett

BaW-Bot Teil 1: Build ein Arduino auf einem Brett

Dies ist der erste Teil unserer BaW-Bot (Glocken und Pfeifen Bot) Build-5 separate Instructables, die in verschiedenen Arduino-bezogenen Technologien kombiniert, um einen Bot erstellen mit allem Drum-und-dran aussehen.Teil 1: Build ein Arduino auf ei
Leichte Ring auf Unterwasser-Roboter - Teil 2 (CNC-Fräse)

Leichte Ring auf Unterwasser-Roboter - Teil 2 (CNC-Fräse)

Hallo. In diesem instructable, machen wir einen hellen Ring. Es ist ein Teil, der auf der Vorderseite ein Unterwasser-Roboter (Bild 2).Lesen Sie mehr auf den Kontext, in Teil 1 die instructable, aber hier ist die kurze Version: unsere Forschung Robot