delay() — Maple v0.0.11 Documentation

### Navigation

- next
- previous |
- LeafLabs |
- Index »
- Complete Language Index »

# 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.

  Parameters:

  - `ms` -

    the number of milliseconds to delay.

  See: | delayMicroseconds()

## 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

    int ledPin = 13;                 // LED connected to pin 13

    void setup() {
      pinMode(ledPin, OUTPUT);      // sets the digital pin as output
    }

    void loop() {
      digitalWrite(ledPin, HIGH);   // sets the LED on
      delay(1000);                  // waits for a second
      digitalWrite(ledPin, 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.

### Navigation

- next
- previous |
- LeafLabs |
- Index »
- Complete Language Index »