delay()

描述

將程式暫停一段由參數指定的時間 (單位是毫秒,1000 毫秒 = 1 秒)

語法


delay(ms)

參數

ms: 暫停多少毫秒 (unsigned long)

回傳

無回傳值

範例

int ledPin = 13;                // LED 燈連接到 pin 腳 13

void setup()
{
  pinMode(ledPin, OUTPUT);      // 將數位 pin 腳設定為輸出
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // 點亮 LED 燈
  delay(1000);                  // 等待一秒
  digitalWrite(ledPin, LOW);    // 熄滅 LED 燈
  delay(1000);                  // 等待一秒
}

警告

雖然用 delay() 很容易能製作出閃爍的 LED 燈,也可以用來去除外部開關的瞬間抖動,不過,太常使用 delay() 也有一些顯著的缺點;例如:在延遲的這段時間裡,不能讀取感測器、不能做數學運算、不能處理 pin 腳信號,也就是說它會讓大部分的動作都停擺;作為控制時間的替代方案可以參考使用 millis() 函式還有程式碼範例,許多有經驗的程式設計師會避免使用 delay() 超過十毫秒,除非程式碼本身相當簡單。

然而,在 delay() 的這段延遲期間裡,CPU 還是可以做某些事情的:由於這段時間裡沒有關閉中斷,所以從序列埠的 RX pin 腳進來的資料都會被紀錄下來,PWM (analogWrite) 的數值和 pin 腳狀態也會被保存,中斷事件也會照常運作。

See also

millis()
micros()
delayMicroseconds()
Blink Without Delay example


語法參考主頁面

本頁由熱血青年 LBU 譯自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.