“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论坛