delay()¶
Pauses the program for at least a given number of milliseconds. (There are 1000 milliseconds in a second.)
Library Documentation¶
-
void
delay
(unsigned long ms)¶ Delay for at least the given number of milliseconds.
Interrupts, etc. may cause the actual number of milliseconds to exceed ms. However, this function will return no less than ms milliseconds from the time it is called.
- See
- delayMicroseconds()
- Parameters
ms
-the number of milliseconds to delay.
Discussion¶
While it is easy to create a blinking LED with the delay()
function, and many sketches use short delays for such tasks as switch
debouncing, the use of delay()
in a sketch has significant
drawbacks. No other reading of sensors, mathematical calculations, or
pin manipulation can go on during the delay function, so in effect, it
brings most other activity to a halt. For alternative approaches to
controlling timing see the millis() function
and the “Blink Without Delay” sketch cited below. More knowledgeable programmers usually
avoid the use of delay()
for timing of events longer than tens of
milliseconds, unless the sketch is very simple.
Certain things do go on while the delay()
function is
controlling the STM32 chip, however, because the delay function does
not disable interrupts. Serial communication that appears at the RX
pin is recorded, PWM (see pwmWrite()) values
and pin states are maintained, and interrupts will work as they should.
Example¶
void setup() {
// set up the built-in LED pin for output:
pinMode(BOARD_LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(BOARD_LED_PIN, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(BOARD_LED_PIN, LOW); // sets the LED off
delay(1000); // waits for a second
}
See Also¶
- millis()
- micros()
- delayMicroseconds()
- (Arduino) Blink Without Delay example (works unmodified on Maple)
License and Attribution
Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.