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.