用户工具

站点工具


reference:language:delay

差别

这里会显示出您选择的修订版和当前版本之间的差别。


前一修订版
reference:language:delay [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== delay() ======
 +
 +===== 描述 =====
 +
 +使程序暂定设定的时间(单位毫秒)。(一秒等于1000毫秒)
 +===== 语法 =====
 +
 +delay(ms)
 +===== 参数 =====
 +
 +ms:暂停的毫秒数(unsigned long)
 +===== 返回 =====
 +
 +
 +===== 例子 =====
 +<code cpp>
 +ledPin = 13 / / LED连接到数字13脚
 + 
 +void setup()
 +{
 +  pinMode(ledPin, OUTPUT);      // 设置引脚为输出
 +}
 + 
 +void loop()
 +{
 +  digitalWrite(ledPin, HIGH);   // 点亮LED
 +  delay(1000);                  // 等待1秒
 +  digitalWrite(ledPin, LOW);    // 灭掉LED
 +  delay(1000);                  // 等待一秒
 +}
 +</code> 
 +===== 警告 =====
 +
 +虽然创建一个使用delay()的闪烁LED很简单,并且许多例子将很短的delay用于消除开关抖动,delay()确实拥有很多显著的缺点。在delay函数使用的过程中,读取传感器值、计算、引脚操作均无法执行,因此,它所带来的后果就是使其他大多数活动暂停。其他操作定时的方法请参加millis()函数和它下面的例子。大多数熟练的程序员通常避免超过10毫秒的delay(),除非程序非常简单。
 +
 +但某些操作在delay()执行时任然能够运行,因为delay函数不会使中断失效。通信端口RX接收到得数据会被记录,PWM(analogWrite)值和引脚状态会保持,中断也会按设定的执行。
 +