Paso 6: Cómo funciona
La clave para esto es muy simple. Dentro de nuestra rutina interrupción de servicio (ISR) tenemos un poco si se ejecuta la declaración que comprueba cuánto tiempo ha pasado desde la interrupción fue pasada. Si ha sido lo suficientemente largo, permite la interrupción correr otra vez! Esto da a nuestra señal suficiente tiempo para resolver, antes de que vuelva a ejecutar el ISR.
Este código es simple y funciona bien, pero si darás cuenta, el cheque pasa dentro de la ISR Lo que está sucediendo es realmente estamos interrumpiendo nuestro código del bucle principal varias veces, para comprobar y ver si ha sido lo suficientemente largo y correr el resto de nuestro ISR cuando tiene. Por eso este es el método de "fuerza bruta".
Esto no es siempre la mejor solución, pero nuestro cheque pasa tan rápido que es imperceptible. Aún así, mi siguiente tutorial explorará una alternativa a este método de fuerza bruta, que deshabilita y volver a habilitar la interrupción, en lugar de simplemente comprobar una y otra vez.
Hasta la próxima!