Processing:Библиотеки/Hardware I/O/Класс GPIO/noInterrupts()
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
noInterrupts()[1]
Класс
GPIO
Обозначение
noInterrupts()
Описание
Отключает возможность запуска прерываний.
Функции noInterrupts() и interrupts() можно использовать в тандеме – чтобы скетч, выполняя какую-либо задачу, не запускал больше никаких прерываний.
Поскольку пользовательская функция связана с контактом, который проверяется на прерывание, noInterrupts() автоматически блокирует все остальные прерывания, вызываемые на этом контакте. Прерывания на других контактах, впрочем, по-прежнему будут запускаться. Если вы хотите предотвратить и это, поставьте noInterrupts() в самом начале функции обратного вызова, а interrupts() – в ее конце (как показано в скетче-примере ниже).
Синтаксис
.noInterrupts()
Параметры
void
Возвращаемое значение
void
Пример
import processing.io.*;
color bgcolor = 0;
void setup() {
GPIO.pinMode(4, GPIO.INPUT);
GPIO.pinMode(5, GPIO.INPUT);
GPIO.attachInterrupt(4, this, "pinEvent", GPIO.RISING);
GPIO.attachInterrupt(5, this, "pinEvent", GPIO.RISING);
}
void draw() {
background(bgcolor);
}
void pinEvent(int pin) {
GPIO.noInterrupts();
// с этого момента нас не побеспокоит ни одно прерывание:
println("Received interrupt on pin" + pin);
// "Получено прерывание на контакте: "
if (bgcolor == 0) {
bgcolor = color(255);
} else {
bgcolor = color(0);
}
GPIO.interrupts();
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |