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

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


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


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


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
.noInterrupts()
.noInterrupts()
</syntaxhighlight>
</syntaxhighlight>
Строка 36: Строка 36:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
void
void
</syntaxhighlight>
</syntaxhighlight>
Строка 42: Строка 42:
==Возвращаемое значение==
==Возвращаемое значение==


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


<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


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



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

См.также

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