En esta entrada vamos a ver distintas aproximaciones a la ejecución multitarea en un procesador como Arduino o, como se le conoce habitualmente, el problema de blink sin delay.
En primer lugar, vamos a rebajar las expectativas respecto a este comportamiento “asíncrono”. En un procesador de pequeño tamaño como Arduino, con un único núcleo y sin sistema operativo, la ejecución de dos tareas simultáneas es imposible.
Cuando nos referimos a “multitarea” o “comportamiento asíncrono” en realidad nos estamos refiriendo a la posibilidad de temporizar tareas de forma no bloqueante. Es decir, ejecutar una o varias tareas cada cierto tiempo, sin que ello suponga que no podamos hacer nada más.
Lo vamos a entender mucho mejor si lo ilustramos con el ejemplo de blink sin delay, así que vamos a dejar de hablar y meternos en harina (en el código, más bien).