blob: 70786605c3594e3390dcafd81070e3ddd0c76b8d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
.. highlight:: cpp
.. _lang-delaymicroseconds:
delayMicroseconds()
===================
Pauses the program for the amount of time (in microseconds)
specified as parameter. There are a thousand microseconds in a
millisecond, and a million microseconds in a second.
Library Documentation
---------------------
.. doxygenfunction:: delayMicroseconds
Example
-------
The following example configures pin number 8 to work as an output
pin, and sends a train of pulses with a period of roughly 100
microseconds::
int outPin = 8;
void setup() {
pinMode(outPin, OUTPUT); // sets the digital pin as output
}
void loop() {
digitalWrite(outPin, HIGH); // sets the pin on
delayMicroseconds(50); // pauses for 50 microseconds
digitalWrite(outPin, LOW); // sets the pin off
delayMicroseconds(50); // pauses for 50 microseconds
}
Caveats and Known Issues
------------------------
The longest time ``delayMicroseconds()`` can delay is bounded by its
argument type and the STM32 clock rate to be (2^32 - 1) / 12
microseconds, or less than 6 minutes. For longer pauses, use of
:ref:`lang-delay` is possible.
Arduino Compatibility
---------------------
While we have made every effort we could to ensure that the timing of
``delayMicroseconds()`` is as accurate as possible, we cannot
guarantee it will behave as the Arduino implementation down to the
microsecond, especially for smaller values of ``us``.
See Also
--------
- :ref:`millis <lang-millis>`
- :ref:`micros <lang-micros>`
- :ref:`delay <lang-delay>`
.. include:: /arduino-cc-attribution.txt
|