我正在尝试使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;
      }
}


它所做的只是使灯光一直点亮并保持点亮。我将不胜感激任何帮助!谢谢!

最佳答案

您根本不需要重置previousMillis,因此一旦(millis() - previousMillis) >= interval为true,它将永远保持为true。

这意味着您的灯会如此快地闪烁,它看起来就像是永久点亮。

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

关于c++ - 如何使用C++在Arduino上制作LED闪光灯,但不使用millis()之外的任何功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30022790/

10-11 18:46