Algo así

Pero con Salvo o con el OSA era muy fácil de hacer en un PIC16. Se trata simplemente de hacer varias tareas independientes, de forma cooperativa. En Arduino si que funciona el FreeRTOS y apenas aumenta unos pocos kb al programa final.
PD: el microcontrolador de Arduino tampoco es mucho mayor que un PIC16 normalito, pero al tener el Atmega un espacio de memoria continuo y control sobre la pila de subrutinas, se puede implementar un RTOS con facilidad. El PIC16 tiene memoria segmentada y una pila de subrutinas muy pequeña (apenas 8 saltos) y sin acceso por programa.