Delay():修訂版本之間的差異

出自YFRobotwiki
跳轉到: 導覽搜尋
(以“<font color="orange" size="+1">'''描述'''</font> 暂停程序指定为参数的时间量(以毫秒为单位)。 (一秒钟内有1000毫秒) <font color=...”为内容创建页面)
 
 
第 45 行: 第 45 行:
 
 虽然使用delay()函数创建闪烁的LED很容易,并且许多草图对于诸如开关去抖动之类的任务使用短延迟,但在草图中使用delay()具有显着的缺点。 在延迟功能中,传感器,数学计算或引脚操作的其他读数都不能继续,因此实际上它会使大部分其他活动停止。 对于控制时序的其他方法,请参阅下面的[[millis()]]函数和草图。 更多知识渊博的程序员通常避免对延迟超过10毫秒的事件定时使用delay(),除非Arduino素描非常简单。
 
 虽然使用delay()函数创建闪烁的LED很容易,并且许多草图对于诸如开关去抖动之类的任务使用短延迟,但在草图中使用delay()具有显着的缺点。 在延迟功能中,传感器,数学计算或引脚操作的其他读数都不能继续,因此实际上它会使大部分其他活动停止。 对于控制时序的其他方法,请参阅下面的[[millis()]]函数和草图。 更多知识渊博的程序员通常避免对延迟超过10毫秒的事件定时使用delay(),除非Arduino素描非常简单。
  
 某些事情会继续进行,而delay()函数则控制Atmega芯片,因为延迟功能不会禁止中断。 记录RX引脚上出现的串行通讯,维持PWM([[analogWrite]])值和引脚状态,并且中断([[attachInterrupt()|interrupts]])将按原样工作。
+
 某些事情会继续进行,而delay()函数则控制Atmega芯片,因为延迟功能不会禁止中断。 记录RX引脚上出现的串行通讯,维持PWM([[analogWrite()|analogWrite]])值和引脚状态,并且中断([[attachInterrupt()|interrupts]])将按原样工作。
  
  

2017年9月13日 (三) 11:12的最新修訂版本

描述

暫停程序指定為參數的時間量(以毫秒為單位)。 (一秒鐘內有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論壇