interrupciones entrar y salir con el mismo boton

interrupciones entrar y salir con el mismo boton

estoy haciendo un programa de una lavadora, pero lo que no he logrado hacer es el boton de pausa, yo se que con interrupciones yo me puedo salir del programa y hacer una tarea, pero yo necesito que se quede en ese loop hasta que presione un boton, como puedo hacer eso?
se me ocurre crear un while en el loop de interrupcion pero es volver a lo mismo que hacer la pausa sin interrupcion, estar vigilando si sucedio algo en el pin.

no se si me pueden ayudar con esto, quizá sea simple pero no se me ocurre una manera
muchas gracias

pdt. aclaro, ya tengo un pin de los dos de interrupciones de mi arduino nano utilizado para el presostato que trabaja con khz.

Ponlo a tu gusto

var_stop =  false

Interrupt_boton_pausa{
   if (var_stop) { var_stop = false  }
   else {var_stop= true}
}

loop {

while (var_stop) { # no hago nada hasta pulsar boton pausa}

bla
bla
bla

}

Y para que usar interrupciones para un botón de pausa en un proceso tan lento como una lavadora.
La única razón es que el código este lleno de delay() y no sepa usar millis() para reemplazar esos delay() y por esa razón recurre a las interrupciones.

Basicamente mala programación y ojo no lo digo desde ningún altar porque no soy el mejor programador, solo que he aprendido que con delay() no se puede hacer nada y como electrónico, las interrupciones son para otra cosa.

Se puede hacer lo mismo sin interrupciones, SI.

surbyte:
Y para que usar interrupciones para un botón de pausa en un proceso tan lento como una lavadora.
La única razón es que el código este lleno de delay() y no sepa usar millis() para reemplazar esos delay() y por esa razón recurre a las interrupciones.

Basicamente mala programación y ojo no lo digo desde ningún altar porque no soy el mejor programador, solo que he aprendido que con delay() no se puede hacer nada y como electrónico, las interrupciones son para otra cosa.

Se puede hacer lo mismo sin interrupciones, SI.

gracias dios de la programacion ya hice todo con millis, no lo tenia claro antes, investigue un poco, y realice todo con while y millis, ahora voy al bucle de pausa.

este bucle,logro que entre pero no que salga con el mismo boton no sesi me pueden ayudar

tengo esto pero se que algo estoy haciendo mal.

void pause() {
  if(flancoSubida(BTN_EXIT)){
      lcd.setCursor(0,0);
      lcd.print("Pause....");
      digitalWrite(agua, LOW);
      digitalWrite(mder, LOW);
      digitalWrite(mizq, LOW);
      delay(200);
      
      while(BTN_EXIT==LOW){
        delay(20);
      }}
      }
[code]

Y qué pena que no hayas leído las normas del foro y ahora te tenga que reclamar que edites ese post donde colocas un código con texto plano.

claro pero ese

      while(BTN_EXIT==LOW){
        delay(20);
      }

arruina todo lo que has hecho con millis(), porque si BTN_EXIT no es LOW me quedo ahi toda la vida.

ya lo edite, pero la idea es estar haciendo nada hasta presionar el botón pero no lo hace

Disculpa pero no me gusta responder sobre rutinas parciales donde no veo como se une esto con el resto del código.

Ej: pones antes

 if(flancoSubida(BTN_EXIT)){

pero no se como haces el flanco? Supongamos que lo haces bien, de todos modos yo debo ver al igual que los demás como se relaciona este código con el resto.

cuando vea todo el código entenderé lo que quieres hacer.