使Arduino函数在交换机机箱内循环

使Arduino函数在交换机机箱内循环,arduino,Arduino,我试图让函数flash()重复,但当再次发生clickevent()并且案例0变为活动状态时,它就会停止 我认为我的错误是,案例0没有变为活动状态,因为它可能被卡在案例1上?我可以让它开始使用while()语句或do while()语句,但是我不能退出循环,任何帮助都将不胜感激 //=======只需单击按钮,即可更改闪光灯和实体之间的照明模式设置=========== int ModeSetting=0; void clickEvent() { Serial.println(“单击发生”);

我试图让函数
flash()
重复,但当再次发生
clickevent()
并且案例0变为活动状态时,它就会停止

我认为我的错误是,案例0没有变为活动状态,因为它可能被卡在案例1上?我可以让它开始使用
while()
语句或
do while()
语句,但是我不能退出循环,任何帮助都将不胜感激

//=======只需单击按钮,即可更改闪光灯和实体之间的照明模式设置===========
int ModeSetting=0;
void clickEvent()
{
Serial.println(“单击发生”);
ModeSetting++;
如果(模式设置>1)
ModeSetting=0;
转换模式(模式设置);
}
无效变更模式(int i)
{
开关(一)
{
案例0:
条直线度(255);
Serial.println(“模式=纯色”);//纯色灯;
打破
案例1:
flash();//需要循环的函数请帮助
打破
}
}
int flashstate=低;
无符号长PrevFlashMillis=0;
常数长闪光间隔=1000;
无效闪光()
{
无符号长电流FlashMillis=millis();
如果(currentFlashMillis-PrevFlashMillis>=flashinterval)
{
//保存上次闪烁LED的时间
PrevFlashMillis=当前FlashMillis;
//如果LED关闭,则将其打开,反之亦然:
如果(flashstate==低)
{
条直线度(255);
Serial.println(“闪光”);
flashstate==高;
}
其他的
{
条状直线度(0);
串行打印(“闪光”);
flashstate==低;
}
}
}

请在代码片段中包含
void loop()
。我想最好的地方就是那里。无论如何,你可以退出循环:只需使用“break;”必要时:“如果(我想退出)休息;”