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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=noInterrupts()<ref>[https://processing.org/reference/libraries/io/GPIO_noInterrupts_.html processing.org - noInterrupts()]</ref>=
=noInterrupts()<ref>[https://processing.org/reference/libraries/io/GPIO_noInterrupts_.html processing.org - noInterrupts()]</ref>=
Строка 98: Строка 98:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 11:50, 20 мая 2023


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



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

См.также

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