delay()

[Idő]

Leírás

Szünetelteti a programot a paraméterként megadott ideig (ezredmásodpercben). (Egy másodpercben 1000 ezredmásodperc van.)

Szintaxis

delay(ms)

Paraméterek

ms: a szünet hossza ezredmásodpercben. Engedélyezett adattípusok: unsigned long.

Visszatérési érték

Nincs.

Példa

A kód egy másodpercre szünetelteti a programot, mielőtt átkapcsolná a kimeneti kivezetést.

int ledPin = 13;              // LED-et csatlakoztatunk a digitális 13-as kivezetésre

void setup() {
  pinMode(ledPin, OUTPUT);    // a digitális kivezetést output-ra állítja
}

void loop() {
  digitalWrite(ledPin, HIGH); // a LED-et bekapcsolja
  delay(1000);                // 1 másodpercig várakozik
  digitalWrite(ledPin, LOW);  // a LED-et kikapcsolja
  delay(1000);                // 1 másodpercig várakozik
}

Megjegyzések és figyelmeztetések

Míg könnyű létrehozni egy villogó LED-et a delay() függvénnyel, és sok vázlat rövid késleltetést használ az olyan feladatokhoz, mint a kapcsoló visszaugrása, a delay() vázlatokban való használatának jelentős hátrányai vannak. A késleltetési funkció alatt semmilyen más szenzorolvasás, matematikai számítás vagy kivezetés-manipuláció nem mehet végbe, így gyakorlatilag leállítja a legtöbb tevékenységet. Az időzítés vezérlésének alternatív módjaiért lásd a Villogtatás delay nélkül vázlatot, amely a millis() függvény lekérdezését hajtja végre, amíg elegendő idő el nem telik. A hozzáértőbb programozók általában elkerülik a delay() használatát a 10 ezredmásodpercnél hosszabb események időzítésére, hacsak az Arduino vázlat nem nagyon egyszerű.

Bizonyos dolgok azonban folytatódnak, miközben a delay() függvény vezérli az Atmega chipet, mivel a delay függvény nem tiltja le a megszakításokat. Az RX kivezetésen megjelenő soros kommunikáció rögzítésre kerül, a PWM (analogWrite) értékek és kivezetések állapota megmarad, és a megszakítások megfelelően működnek.

Lásd még