Delay

Материал из MK90.ORG wiki
Перейти к: навигация, поиск

Справка Язык | Библиотеки | Сравнение | Изменения

delay()

Описание

Приостанавливает выполнение программы на заданное количество миллисекунд (в одной секунде 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() невозможно выполнять другие задачи - например, считывать состояние сенсоров, математические операции или манипуляции с пинами. Альтернативным подходом является проверка времени с помощью функции millis() (см. пример BlinkWithoutDelay). Опытные программисты обычно используют delay() для задержек более 10 миллисекунд только в очень простых скетчах.

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

Смотри также

Руководство по Wiring


Исправления, пожелания и новые статьи должны быть опубликованы через Форум.

Оригинальные тексты руководств и переводы распространяются Arduino и MK90 на условиях лицензии Creative Commons Attribution-ShareAlike 3.0 License. Примеры исходных кодов и ссылки являются общественным достоянием.