Суть моего псевдо-кода заключается в следующем (я упростил его, чтобы упорядочить более простые ответы):
if (vibrate == 1){ //this is the input sensing to the arduino.
//It is either 1 or 0
//constantly run a while loop IF vibrate ==1
i=51;
while(vibrate ==1){
analogWrite(Motor,i); //constantly outputing a pulse of increasing magnitude
delay(10); //delay it for a certain period of time
i=i+50; //increment i
if (i>=255){
i=51;
}
}
}
else{ //do something else. Has it's own functions}
Теперь с датчика поступает вибрация. Если вибрация равна 1, я бы автоматически захотел вывести линейный импульс (то есть, в то время как цикл). Однако, если вибрация меняет свое значение (т.е. обнуляется), я бы хотел, чтобы цикл while не запускался, а если он запущен, я хотел бы выйти из цикла while. Проблема, с которой я сталкиваюсь, заключается в том, что вибрация обновляется вне цикла while, и, следовательно, я получу бесконечный цикл. Есть ли лучший способ включить это? Я также не могу обновить значение вибрации в цикле while, поскольку мне нужно также проверить большее «если».