Delay()

出自YFRobotwiki
在2017年9月13日 (三) 11:12由Allblue對話 | 貢獻所做的修訂版本

(差異) ←上個修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳轉到: 導覽搜尋

描述

暫停程序指定為參數的時間量(以毫秒為單位)。 (一秒鐘內有1000毫秒)


語法

delay(ms)


參數

ms: 要暫停的毫秒數(unsigned long)


返回

nothing


示例

int ledPin = 13;                 // LED connected to digital 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
}


警告

雖然使用delay()函數創建閃爍的LED很容易,並且許多草圖對於諸如開關去抖動之類的任務使用短延遲,但在草圖中使用delay()具有顯著的缺點。 在延遲功能中,感測器,數學計算或引腳操作的其他讀數都不能繼續,因此實際上它會使大部分其他活動停止。 對於控制時序的其他方法,請參閱下面的millis()函數和草圖。 更多知識淵博的程序員通常避免對延遲超過10毫秒的事件定時使用delay(),除非Arduino素描非常簡單。

某些事情會繼續進行,而delay()函數則控制Atmega晶元,因為延遲功能不會禁止中斷。 記錄RX引腳上出現的串列通訊,維持PWM(analogWrite)值和引腳狀態,並且中斷(interrupts)將按原樣工作。


擴展閱讀

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




返回Arduino語法參考列表

更多建議和問題歡迎反饋至 YFRobot論壇