Я застреваю, пытаясь получить определенные фрагменты кода для запуска только один раз для нажатия кнопки (digitalRead).Код запуска После нажатия кнопки - Arduino
void setup() {
// Set up and init all outputs to off
pinMode(2, INPUT);
pinMode(7, INPUT);
Serial.begin(9600);
while (!Serial);
Serial.println("Test");
for(byte i = 0; i<OutputCount; i++){
pinMode(outputs[i][OutputPin], OUTPUT);
digitalWrite(outputs[i][OutputPin], LOW);
// Set up an event fuse for this output.
eventFuse.newFuse(i, outputs[i][OffTime], INF_REPEAT, OutputHandler);
}
// Set MsTimer2 for one second per tick.
MsTimer2::set(100, timerTick);
MsTimer2::start();
}
void loop(){
if (digitalRead(2) == HIGH) {
while (i < 1){
switchPos = 2;
MsTimer2::start();
i++;
}
}
else if (digitalRead(7) == HIGH) {
while (i < 1){
switchPos = 7;
MsTimer2::stop();
}
}
else {
switchPos = 0;
i = 0;
}
}
Приведенный выше код использует коробчатый стандартный пример Lamp Timer, который поставляется с библиотеками MsTimer2 и EventFuse.
В секции цикла есть несколько циклов, в которых шов будет бесконечным. Все, что мне нужно, это война, чтобы запустить код, который вы видите внутри циклов while, только один раз. Есть идеи?
Любая помощь была бы высоко оценена!
Благодаря
Что вы пытаетесь достичь с помощью петель? У вас есть один одноионный цикл (т. Е. Не служит никакой дополнительной цели) и один бесконечный цикл. Кроме того, где вы определяете i? – ajshort
Возможно, вы забыли 'i ++' во втором 'while' в' loop() '. – MikeCAT