У меня есть Arduino код, который делает такие задачи, как это:Комбинированные петли не работает в Arduino
while (a=='A')
{
//do the task A
}
while (a=='B')
{
//do the task B
}
Эти петли работать правильно, когда они работают отдельно. Но проблема возникает, когда я пытаюсь объединить обе петли, т.е.
void loop()
{
while (a=='A')
{
//do the task A
}
while (a=='B')
{
//do the task B
}
}
Ниже приведен код в подробных деталях:
void loop()
{
////// admin
Serial.println("A or B");
delay(500);
char a = userinput();
delay(500);
while(a== 'A'){
Serial.println("Type Your Starting ID Number...");
while(1){
while (Serial.available()==false);
char e = Serial.read();
if(isdigit(e)==false) break;
startid = (startid*10)+(e - 48);
}
if(startid<=endid){
for(pageid=startid; pageid<=endid; pageid++)
{
Serial.print("Your Biometric ID # is ");
Serial.println(pageid);
delay(2000);
fingerenrollment(pageid);
delay(2000);
if(pageid == endid){
Serial.println("......Memory Is Full....");
while(1);
}
}
}
else{
Serial.println("Wrong Entry.......Please Reset Your Device.....");
while(1);
}
}
////// user
while(a=='B'){
lcd.print("WELCOME TO iPoll");
delay(2000);
lcd.clear();
lcd.print("Place Your Thumb");
delay(2000);
lcd.clear();
tempid = '\0';
Serial.println("Place your Thumb For Authentication");
delay(500);
while(true){
ID = fingerauthentication();
delay(500);
if(tempid != '\0') break;
}
delay(100);
resp = userinput();
delay(100);
lcd.clear();
datatrans(ID, resp);
}
}
Если вам нужна дополнительная помощь, я здесь. Просто комментарий.