Processing:Библиотеки/Hardware I/O/Класс GPIO/attachInterrupt(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 10: Строка 10:
==Класс==
==Класс==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
GPIO
GPIO
</syntaxhighlight>
</syntaxhighlight>
Строка 16: Строка 16:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
attachInterrupt()
attachInterrupt()
</syntaxhighlight>
</syntaxhighlight>
Строка 30: Строка 30:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
.attachInterrupt(pin, parent, method, mode)
.attachInterrupt(pin, parent, method, mode)
</syntaxhighlight>
</syntaxhighlight>
Строка 36: Строка 36:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
pin – входной/выходной контакт общего назначения, проверяемый на прерывание. Тип данных – int
pin – входной/выходной контакт общего назначения, проверяемый на прерывание. Тип данных – int
parent – как правило, используется «this». Тип данных – PApplet
parent – как правило, используется «this». Тип данных – PApplet
Строка 45: Строка 45:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
void
void
</syntaxhighlight>
</syntaxhighlight>
Строка 51: Строка 51:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<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


Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



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);
  }
}

См.также

Внешние ссылки