Processing:Библиотеки/Hardware I/O/Класс GPIO/attachInterrupt()
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
attachInterrupt()[1]
Класс
GPIO
Обозначение
attachInterrupt()
Описание
Вызывает функцию, если меняется значение входного контакта.
У пользовательской функции pinEvent() из скетча-примера ниже должен быть только один параметр – это номер контакта, который проверяется на прерывание. Поскольку эта функция может быть вызвана в любой момент (в том числе – когда запрещено рисование в дисплейном окне), желательно использовать в ней только простые переменные. Их изменение, в свою очередь, будет влиять на то, что происходит при следующем вызове цикла draw(), как в примере ниже. Кроме того, на этом этапе можно свободно вызывать функции библиотеки Hardware I/O.
Четвертый параметр (mode) задает, когда нужно вызвать функцию. При использовании FALLING прерывание сработает, если значение на заданном контакте сменится с HIGH на LOW, при использовании RISING – с LOW на HIGH, а при использовании CHANGE – при любом из этих изменений.
Синтаксис
.attachInterrupt(pin, parent, method, mode)
Параметры
pin – входной/выходной контакт общего назначения, проверяемый на прерывание. Тип данных – int
parent – как правило, используется «this». Тип данных – PApplet
method – название пользовательской функции, вызываемой при прерывании. Тип данных – String
mode – режим вызова функции (то есть то, при каком типе изменения значения нужно вызвать функцию). Возможные значения: CHANGE, FALLING и RISING. Тип данных – int
Возвращаемое значение
void
Пример
import processing.io.*;
color bgcolor = 0;
void setup() {
GPIO.pinMode(4, GPIO.INPUT);
GPIO.attachInterrupt(4, this, "pinEvent", GPIO.RISING);
}
void draw() {
background(bgcolor);
}
// эта функция будет вызваться всякий раз,
// когда значение на контакте GPIO4 изменится с LOW на HIGH:
void pinEvent(int pin) {
println("Received interrupt");
// "Вызвано прерывание"
if (bgcolor == 0) {
bgcolor = color(255);
} else {
bgcolor = color(0);
}
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |