Processing:Библиотеки/Hardware I/O/Класс GPIO/attachInterrupt(): различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
==Класс== | ==Класс== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
GPIO | GPIO | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 16: | Строка 16: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
attachInterrupt() | attachInterrupt() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 30: | Строка 30: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
.attachInterrupt(pin, parent, method, mode) | .attachInterrupt(pin, parent, method, mode) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 36: | Строка 36: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
pin – входной/выходной контакт общего назначения, проверяемый на прерывание. Тип данных – int | pin – входной/выходной контакт общего назначения, проверяемый на прерывание. Тип данных – int | ||
parent – как правило, используется «this». Тип данных – PApplet | parent – как правило, используется «this». Тип данных – PApplet | ||
Строка 45: | Строка 45: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
void | void | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 51: | Строка 51: | ||
==Пример== | ==Пример== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
import processing.io.*; | import processing.io.*; | ||
color bgcolor = 0; | color bgcolor = 0; |
Текущая версия от 11:54, 20 мая 2023
Содержание | Среда разработки 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 | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |