He utilizado la interrupción del temporizador en mi aplicación, principalmente por razones de temporización como la detección del tiempo de espera para los procesos, la generación de impulsos, etc., cada 1 ms. Ahora tengo una duda.
Supongamos que en main (), si estoy realizando otra operación como, tal vez al escribir en un Flash SPI una gran parte de los datos, y se produzca la interrupción del temporizador, el proceso de escritura de los datos se detenga debido a la interrupción del ISR del temporizador o los datos se corrompan Debido a la interrupción por temporizador ISR? Me pregunto si el tiempo de interrupción del temporizador se decide considerando las operaciones que conforman el código completo de la aplicación.
Si es así, si una escritura de SPI flash tarda unos 5 ms y la interrupción del temporizador se produce cada 1 ms, ¿cómo puedo realizar un seguimiento de los tiempos de espera, las generaciones de pulsos, etc., sin comprometer los escenarios de corrupción de datos, porque ahora tendré que cambiar la interrupción del temporizador a mayor? de 5 ms, y luego no puedo mantener una referencia de tiempos de espera para procesos donde se pueden necesitar tiempos de espera pequeños como 1 ms.
Actualizar
Estoy usando un temporizador de hardware, y cuando ocurra la interrupción, estaré usando un contador de temporizador de software (variable) en el ISR, para mantener un registro del tiempo.