如何使用c ++在Arduino上制作LED闪光灯但不使用除millis()之外的任何功能

时间:2015-05-04 04:47:09

标签: c++ arduino

我试图让我的arduino上的LED闪烁而不使用除setup()和loop()中的millis()之外的任何功能。以下是我到目前为止的情况:

long previousMillis = 0;
long interval = 1000;

void setup()
{
   DDRB = DDRB | B11111100;
}
void loop()
{
   if ((unsigned long)(millis() - previousMillis) >= interval)
      {
      if ( PORTB == B00000000)
          PORTB = B00100000;
      else
          PORTB = B00000000; 
      }
}

它所做的一切就是让灯继续亮起并保持不变。我将不胜感激任何帮助!谢谢!

1 个答案:

答案 0 :(得分:1)

您根本没有重置previousMillis,所以一旦(millis() - previousMillis) >= interval成立,它将永远保持真实。

这意味着你的灯光会快速闪烁,看起来好像永久亮起。

将:previousMillis = millis()添加到loop()函数的末尾。