Scooter
Cascarrabias crónico
Sin dudas. Doy fé de que el mantenimiento es muy complicado. Solo usando C con variables locales ya se ganó muchísimo a la hora de mantener el código.
De todos modos con un despachador de tareas necesitas programar bastante parecido; con código que no pare, que pase de largo en los problemas y deje banderas o algo de lo que ha pasado para la próxima; si paras a esperar a algo ya no funciona el sistema.
Otra opción es que el despachador de tareas sea una interupción del timer que corte la tarea esté donde esté, guarde una "foto" de que estaba pasando, registros, punteros etc y salte a otra tarea. Eso lo sabría hacer en ensamblador pero no lo sabría hacer en C. Supongo que hay compiladores que ya llevan esto incorporado.
De todos modos con un despachador de tareas necesitas programar bastante parecido; con código que no pare, que pase de largo en los problemas y deje banderas o algo de lo que ha pasado para la próxima; si paras a esperar a algo ya no funciona el sistema.
Otra opción es que el despachador de tareas sea una interupción del timer que corte la tarea esté donde esté, guarde una "foto" de que estaba pasando, registros, punteros etc y salte a otra tarea. Eso lo sabría hacer en ensamblador pero no lo sabría hacer en C. Supongo que hay compiladores que ya llevan esto incorporado.