Przerwania w Arduino

Przerwania w Arduino
W programowaniu Arduino, aby uniknąć włamania się do przepływu kodu przerw są. Te przerwania składają się ze specjalnych instrukcji odpowiedniej przeszkody spowodowanej działaniem kodu. Podobnie mogą być również używane do monitorowania dowolnego innego zadania w określonym czasie. Ten dyskurs wyjaśnia krótko przerwania używane w Arduino

Co to są przerwania

Aby zrozumieć koncepcję przerwań, możemy wziąć scenariusz wypadku samochodowego. Załóżmy, że samochód porusza się po autostradzie, a elektronika samochodowa jest stale monitorowana przez mikrokontroler, jak pomiar prędkości samochodu i temperatury kabiny i tym podobne. Nagle samochód uderza coś, a następnie komputer samochodowy zatrzymuje wszystko i wykonuje otwarcie poduszek powietrznych. Tak więc tutaj, w tym przykładzie, wypadek jest przerwaniem, a otwarcie poduszki powietrznej jest instrukcją podaną, jeśli nastąpi to przerwanie. Tak więc po otwarciu poduszek powietrznych komputer będzie nadal wykonywać swoje rutynowe funkcje.

Przerwania w Arduino

W programowaniu Arduino w celu obsługi przerwania używana jest funkcja o nazwie Procedura usługi przerwania. Ta funkcja jest wywoływana, gdy przerwanie jest uruchamiane, ponieważ funkcja ta przenosi instrukcję do wykonania, gdy jakiekolwiek przerwanie zostanie uruchomione. Przerwanie mogą być oparte na oprogramowaniu lub oparte na sprzęcie, głównie przerwania w Arduino są oparte na sprzęcie.

Sprzęt przerywa: Gdy włamanie jest spowodowane przepływem programu Arduino przez którekolwiek z urządzeń wejściowych połączonych z Arduno, nazywa się przerwaniem sprzętu.

Oprogramowanie przerywa: Gdy przepływ programu Arduino zostanie zakłócony z powodu komputera lub niektórych oprogramowania, takie rodzaje przerwań nazywane są przerwania oprogramowania.

W przypadku przerywników opartych na sprzęcie używane są dwa szpilki na płytkę Arduino Uno, to jest pin numer 2 i 3, a te piny różnią się dla każdej płyty.

Funkcją używaną do deklarowania przerwania jest załącznik () funkcjonować. Ta funkcja ma trzy argumenty: po pierwsze jest pinem przerwania, druga to procedura usługi przerwania (ISR), a ostatni jest stanem, w którym nastąpi przerwanie. Podobnie, aby zadeklarować szpilkę przerwań dla Arduino DigitalPintoInterrupt () Zastosowana jest funkcja. Składnia funkcji załącznika jest podana jako:

załącznik (DigitalPintoInterrupt (pin), ISR, tryb);

Istnieje pięć trybów, które są używane do definiowania stanu przerwania, które są następujące:

  • Kiedy stan zmienia się w trybie wysokim od trybu, w którym będzie wywołać przerwanie NISKI.
  • Jeśli pin zmieni jego stan na wysokie od niskiego poziomu, aby był tryb przerwania WYSOKI.
  • Gdy przerwanie ma być wyzwalane, gdy nastąpi zmiana stanu pinu albo wysoka lub niska tryb ZMIANA będzie użyty.
  • Kiedy przerwanie ma być wyzwalane, gdy stan przechodzi z niskiego do wysokiego ROSNĄCY Tryb zostanie podany.
  • Kiedy przerwanie ma być wyzwalane, gdy stan przechodzi z wysokiego do niskiego SPADAJĄCY Tryb zostanie podany dla funkcji przerwania.

Przykład

Aby dać jasny obraz przerwań w Arduino, przykład przerwania ilustruje przykład. W tym przykładzie zmiana stanu z wysokiej na niską diodą LED jest traktowana jako wyzwalacz przerwania i podaje się kod wyzwalania przerwania:

const int Ledpin = 12;
const int przerwanie = 2;
Bool State = High;
void setup ()
Pinmode (Ledpin, stan);
pinmode (przerwanie, input_pullup);
załącznik (DigitalPintoInterrupt (przerwanie), mrugnięcie, zmiana);

void Loop ()
DigitalWrite (Ledpin, stan);

void Blink ()
stan = !państwo;

Schemat obwodu

Wniosek

Przerwania w Arduino są używane do obsługi oczekiwanych włamań w przepływie kodu. Przerwiki można również wykorzystać do wykonywania dowolnego zadania o wyższym priorytecie w określonym czasie, łamanie przepływu roboczego programu Arduino. Po przerywaniu programu wykonuje normalne zadania, które wykonywał. W tym opisie, co są przerwania i jak są one używane w Arduino, są krótko omówione.