Arduino: Error al querer aumentar valor en un switch case

Tengo el problema que estoy en un switch case que al ser presionado por un push button ira cambiando de valores, pero si no lo presiono muestro una animación de espera, así que cree una función para esa animación y la metí en el caso 0 de mi swith case, pero al ejecutarlo la animación se queda aun dándole al botón y si quito esa función del mi caso 0 funciona perfectamente, alguien me podría ayudar a ver porque no funciona.

switch (contador)
  {
    case 0:
      on(1000);
      break;


void on (int tiempo) {
  for (int letra = 6; letra >= 0; letra--) {
    digitalWrite(letra, HIGH);
    delay(tiempo);
    digitalWrite(letra, LOW);
    delay(tiempo);

  }
}```