attachInterrupt()

attachInterrupt

Описание

Задает функцию обработки внешнего прерывания, то есть функция, которая будет вызвана по внешнему прерыванию. Если до это была задана другая функция, то назначается новая.

Плата int.0 int.1 int.2 int.3 int.4 int.5
UNO, Ethernet 2 3        
Mega2560 2 3 21 20 19 18
Leonardo 3 2 0 1 7  

Синтаксис

attachInterrupt(interrupt, function, mode);

Параметры

interrupt: номер прерывания (int) 
или pin: номер цифрового порта (только для Arduino Due)

function: функция, вызываемая прерыванием, функция должна быть без параметров и не возвращать значений. В англоязычной документации употребляется термин interrupt service routine для такой функции.

mode задает режим обработки прерывания. Допустимо использование следующих констант:

  • LOW вызывает прерывание, когда на порту LOW
  • CHANGE прерывание вызывается при смене значения на порту, с LOW на HIGH и наоборот
  • RISING прерывание вызывается только при смене значения на порту с LOW на HIGH
  • FALLING прерывание вызывается только при смене значения на порту с HIGH на LOW

Возвращаемое значение

нет

Дополнительная информация

Большинство контроллеров Ардуино умеют обрабатывать до двух внешних прерываний, пронумерованных так:

  • 0 — на цифровом порту 2
  • 1 — на цифровом порту 3

Arduino Mega обрабатывает дополнительно еще четыре прерывания:

  • 2 — порт 21
  • 3 — порт 20
  • 4 — порт 19
  • 5 — порт 18

Arduino Due имеет мощные возможности обработки прерываний, что позволяет прикрепить функцию прерывания для всех доступных контактов. Вы можете напрямую указать пин в attachInterrupt().

Пример

int pin = 13;
volatile int state = LOW;

void setup(){
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE);
}
void loop(){
  digitalWrite(pin, state);
}
void blink(){
  state = !state;
}

Связанные записи

Добавить комментарий

Ваш адрес email не будет опубликован.