¿Cuál es la filosofía o el enfoque adoptado para implementar funciones de tiempo crítico en microcontroladores, si hay alguno?
Estoy trabajando en un proyecto que implica la salida de una forma de onda precisa de onda cuadrada de frecuencia variable. He hecho esto usando un temporizador y una función de interrupción. Sin embargo, incluso para implementar esto correctamente, tuve que calibrar el desplazamiento para la cantidad de ciclos de reloj tomados durante la rutina de servicio de interrupción. Me imagino que esta precisión se vería perturbada al tener otra forma de onda de este tipo corriendo al lado (digamos que la frecuencia necesitaba cambiarse exactamente al mismo tiempo). Tener un microcontrolador cada uno, para cada momento, la función crítica parece un desperdicio.
Tome otro ejemplo, de implementar una función de reloj (como en hh: mm: ss). No puedo imaginar que cada microcontrolador / computadora de alto nivel tenga un chip de reloj en tiempo real dedicado únicamente para hacer un seguimiento de la hora. Sin embargo, me resulta difícil imaginar que se mida con precisión utilizando el procesador central, que está ocupado atendiendo una gran cantidad de funciones que se producen a intervalos asincrónicos mientras tanto. Me imagino que el conteo de tiempo tendría errores de compensación, que cambian dependiendo de las funciones que se ejecutan.
¿Existe un proceso o enfoque de diseño para contener o dar tolerancia a la precisión que se puede lograr? ¿O alguien tiene alguna sugerencia o sugerencia sobre dónde podría encontrar más información al respecto?