Функція delay()

Документація

delay()


Призупиняє виконання програми на кількість часу у мілісекундах, визначену як параметр. (У секунді 1000 мілісекунд.)

Синтаксис

delay(мс)

мс: на яку кількість мілісекунд призупинити (unsigned long)

Повертає

Нічого

<h6>Приклад</h6>

int ledPin = 13;                 // світлодіод підключений до цифрового піна 13
 
void setup()
{
  pinMode(ledPin, OUTPUT);      // встановлює цифровий пін як вихід
}
 
void loop()
{
  digitalWrite(ledPin, HIGH);   // вмикає світлодіод
  delay(1000);                  // чекає секунду
  digitalWrite(ledPin, LOW);    // вимикає світлодіод
  delay(1000);                  // чекає секунду
}

Застереження

В той час як функцією delay() змусити світлодіод мигати досить просто, багато скетчів використовують короткі затримки для таких завдань, як численне перемикання. Хоча використання функції delay() у скетчах має суттєві недоліки. Інші зчитування датчиків, математичні обчислення та управління пінами не можуть виконуватися, поки триває функція затримки. Тому ця функція призупиняє більшість іншої активності. Для альтернативних підходів до контролювання часу розгляньте функцію millis() та цей скетч. Досвідчені програмісти зазвичай уникають використання функції delay() для хронометражу подій, довших за десятки мілісекунд, хіба що скетч Arduino дуже простий.

Деякі речі все ж відбуваються під час того, як функція delay() контролює чіп Atmega, оскільки функція затримки не відключає переривання. Послідовне з'єднання, яке з'являється на піні RX, записується, стани значень ШІМ (analogWrite) та піна зберігаються, переривання працюватимуть, як і повинні.

Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.