delay()

Описание

Приостанавливает выполнение программы на указанный промежуток времени (в миллисекундах). (В 1 секунде — 1000 миллисекунд.)

Синтаксис


delay(ms)

Параметры

ms: количество миллисекунд, на которые необходимо приостановить программу (unsigned long)

Возвращаемые значения

нет

Пример


int ledPin = 13;                 // Светодиод подсоединен к цифровому выводу 13

void setup()
{
  pinMode(ledPin, OUTPUT);      // Конфигурируем цифровой вывод как выход
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // включаем светодиод
  delay(1000);                  // ждем секунду
  digitalWrite(ledPin, LOW);    // выключаем светодиод
  delay(1000);                  // ждем секунду
}

Предупреждение

С помощью функции delay() заставить мигать светодиод достаточно просто. Помимо этого, во многих программах функция задержки используется для таких задач, как обработка дребезга контактов и пр. Несмотря на это, использование функции delay() в коде программы имеет существенные недостатки. В процессе действия delay() такие операции, как считывание данных с датчиков, математические вычисления или операции с выводами не могут выполняться. Фактически, функция delay() приводит к остановке практически всех операций. Альтернативный способ контролировать время — использование функции millis() (смотрите пример кода, приведенный ниже). Опытные программисты обычно избегают использования delay() для установки временных интервалов больше нескольких десятков миллисекунд (за исключением очень простых программ Arduino).

Тем не менее, некоторые события и участки кода могут работать и в процессе выполнения микроконтроллером функции delay(), т.к. эта функция не влияет на работу прерываний. Так, по прежнему будут срабатывать прерывания, записываться данные, поступающие на вывод RX по последовательному интерфейсу, а также будет поддерживаться ШИМ-сигнал, формируемый функцией analogWrite().

Смотрите также

Ардуино