Interrupts in Arduino

Interrupts in Arduino
In der Arduino-Programmierung, um einen Einbruch zu vermeiden, wird der Fluss der Code-Interrupts verwendet. Diese Interrupts bestehen aus besonderen Anweisungen für das jeweilige Hindernis für die Arbeit des Codes. In ähnlicher Weise können Interrupts auch verwendet werden, um jede andere Aufgabe zu einem bestimmten Zeitpunkt zu überwachen. Dieser Diskurs erklärt kurz Interrupts in Arduino

Was sind Interrupts?

Um das Konzept der Interrupts zu verstehen, können wir ein Szenario eines Autounfalls aufnehmen. Angenommen, das Auto bewegt sich die Autobahn hinunter und die Autoelektronik wird vom Mikrocontroller kontinuierlich überwacht wie die Messung der Geschwindigkeit des Autos und der Temperatur der Kabine und ähnlichen Sachen. Plötzlich trifft das Auto etwas, dann stoppt der Autocomputer alles und führt die Öffnung von Airbags aus. Hier in diesem Beispiel ist der Unfall ein Interrupt und eine Öffnung des Airbags der Anweisungen, wenn dieser Interrupt auftritt. Nach dem Öffnen der Airbags wird der Computer seine Routinefunktionen weiter ausführen.

Interrupts in Arduino

In der Arduino -Programmierung, um die Interrupt eine Funktion namens Interrupt Service Routine zu verarbeiten, wird verwendet. Diese Funktion wird aufgerufen, wenn der Interrupt ausgelöst wird, da diese Funktion den Befehl zum Ausführen trägt, wenn ein Interrupt ausgelöst wird. Interrupts können softwarebasierte oder hardwarebasierte, hauptsächlich Interrupts in Arduino sind Hardware -basierte.

Hardware unterbricht: Wenn ein Einbruch im Fluss eines Arduino-Programms durch eines der mit Arduno vermasselten Eingabegeräte verursacht wird, wird als Hardware-Interrupt bezeichnet.

Software unterbricht: Wenn der Fluss des Arduino -Programms aufgrund des Computers oder einer Software unterbrochen wird, werden solche Arten von Interrupts als Software -Interrupts bezeichnet.

Für Hardware-basierte Interrupts werden zwei Stifte für das Arduino Uno-Board verwendet, dh Pin Nummer 2 und 3 und diese Stifte variieren für jede Karte.

Die Funktion, mit der der Interrupt deklariert wurde, ist die Attinterrupt () Funktion. Diese Funktion hat drei Argumente: Erstens ist der Interrupt -Pin, zweitens die Interrupt -Service -Routine (ISR) und der letzte ist der Zustand, in dem der Interrupt stattfinden wird. In ähnlicher Weise, um den Interrupt -Pin für den Arduino zu deklarieren digitalPintointerrupt () Funktion wird verwendet. Die Syntax für die Funktion "Attachterrupt" wird angegeben als:

Attinterrupt (digitalPintointerrupt (PIN), ISR, Modus);

Es gibt fünf Modi, die zum Definieren des Interrupt -Zustands verwendet werden, der wie folgt ist:

  • Wenn sich der Staat von hohen Modus, in dem der Interrupt ausgelöst wird, auf niedrig ändert NIEDRIG.
  • Wenn der Pin seinen Zustand von niedrig von niedrig ändert, so wird der Interrupt -Modus sein HOCH.
  • Wenn der Interrupt ausgelöst werden soll, wenn sich der Status des Stifts entweder hoch oder niedrig im Modus ändert ÄNDERN wird verwendet.
  • Wenn der Interrupt ausgelöst werden soll, wenn der Zustand von niedrig zu hoch wird STEIGEND Modus wird gegeben.
  • Wenn der Interrupt ausgelöst werden soll, wenn der Zustand von hoch zu niedrig wird Fallen Der Modus wird für die Interrupt -Funktion angegeben.

Beispiel

Um ein klares Bild der Interrupts in Arduino zu geben, wird ein Beispiel für Interrupt dargestellt. In diesem Beispiel wird die Änderung des Zustands von hoch zu niedrig zu niedrig als Auslöser für den Interrupt und der Code des Auslösens eines Interrupts angegeben:

const int ledpin = 12;
const int interruptpin = 2;
bool state = hoch;
void setup ()
PinMode (LEDPIN, Zustand);
PinMode (Interruptpin, input_pullup);
ContatInterrupt (digitalPintointerrupt (Interruptpin), Blink, Änderung);

void Loop ()
DigitalWrite (LEDPin, Staat);

void blink ()
Zustand = !Zustand;

Schaltplan

Abschluss

Die Interrupts in Arduino werden verwendet, um die erwarteten Break-Ins im Fluss des Codes zu behandeln. Die Interrupts können auch verwendet werden, um eine höhere Prioritätsaufgabe zu einem bestimmten Zeitpunkt durchzuführen, indem der Arbeitsfluss des Arduino -Programms verstoßen wird. Nachdem der Interrupt behandelt wurde, wird das Programm die normalen Aufgaben ausführen, die es ausgeführt hat. In diesem Artikel werden die Interrupts und wie sie in Arduino verwendet werden, kurz diskutiert.