我试图让我的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;
}
}
它所做的一切就是让灯继续亮起并保持不变。我将不胜感激任何帮助!谢谢!
答案 0 :(得分:1)
您根本没有重置previousMillis
,所以一旦(millis() - previousMillis) >= interval
成立,它将永远保持真实。
这意味着你的灯光会快速闪烁,看起来好像永久亮起。
将:previousMillis = millis()
添加到loop()函数的末尾。