delay()
原文
指定した時間(ミリ秒数単位)、プログラムを一時停止します。
補足:1秒間は1000ミリ秒です。
書式
void delay(unsigned long ms)
所与のミリ秒数の間、遅延する。
割り込みなどによって実際のミリ秒数がmsを超えることがあります。 ただし、この関数は呼び出されてからミリ秒以上の時間を返します。
引数
ms :遅延するミリ秒数。
説明
delay()関数で点滅するLEDを作成するのは簡単ですが、多くのスケッチではスイッチのデバウンスなどのタスクに短い遅延が使用されますが、スケッチでのdelay()の使用には大きな欠点があります。 遅延機能の間、センサー、数学的計算、またはピン操作の他の読み取りは続行できないため、実際にはほとんどの他のアクティビティが停止します。 タイミングを制御するための代替的なアプローチについては、以下に引用するmillis()関数と「Blink Without Delay」スケッチを参照してください。 より知識のあるプログラマは、スケッチが非常に単純でない限り、通常、数十ミリ秒より長いイベントのタイミングにdelay()を使用することを避けます。
遅延関数が割り込みを無効にしないため、delay()関数がSTM32チップを制御している間、いくつかのことが続きます。 RXピンに現れるシリアル通信は記録され、PWM(pwmWrite()参照)値とピン状態は維持され、割り込みは必要に応じて機能します。
利用例
code:sample.ino
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
}
関連項目
millis()
micros()
delayMicroseconds()
(Arduino) Blink Without Delay example (works unmodified on Maple(Arduino Stm32))
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.
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。
Arduino STM32 リファレンス 日本語版 に戻る