Comencé a escribir un programa para un ATXMega. Este programa debe leer un comando a través de USART y luego ejecutarlo (es decir, enviar datos a través de SPI o enviar datos a través de USART). Pero el µC debe ejecutar un comando tras otro, es decir, si hay un comando actual en ejecución (por ejemplo, el envío de bits a través de SPI), el comando recibido se debe volver a colocar en un bucle de espera hasta que el µC haya terminado de realizar esta tarea. Ahora me preguntaba cómo debería diseñar este bucle de espera. Al escribir un programa para la misma tarea en mi PC, simplemente creé dos subprocesos, y un subproceso llenó un búfer, y el segundo lo vació y ejecutó el comando. Pero por lo que sé, el multihilo no es posible en un µC.
¿Cuál es la mejor manera de abordar el comportamiento descrito sin subprocesos múltiples en un µC? ¿Mi enfoque actual (usar un búfer con longitud fija, llenarlo a través de interrupciones y dejar que el µC verifique el búfer cada 100 ms en busca de nuevas cosas) es la mejor manera de hacerlo? ¿O hay una mejor manera?