Hola romarco,
Para aprovechar los recursos del uC mejor: interrumpe la menor cantidad de veces posible.
No tengo idea de que microcontrolador estás usando, pero generar tantas interrupciones para sólo incrementar y controlar variables que lo único que hacen es esperar a que transcurra un lapso de tiempo mayor, es un despilfarro de recursos enorme y puede impactar negativamente en las otras funciones que el microcontrolador este haciendo. En lugar de eso, te propongo interrumpir la menor cantidad de veces posible, ya sea utilizando el pre-scaler, un timer de 16 bits, etc.
Suponiendo que el uC que estás usando ejecuta 1 instrucción cada 1uS (4Mhz de clock en las familias bajas y medias de PIC), para contar 200mS deberíamos entonces esperar 200000 instrucciones. Usando un Timer de 8 bits, con un pre-scaler de 256 (el máximo posible de algunos) podemos contar(esperar en este caso) 65536 instrucciones, que en este caso se pueden convertir fácilmente en 65536uS(65.536mS). Si interrumpimos cada este intervalo de tiempo, sólo necesitaremos una variable para contar 3 interrupciones por desbordamiento, lo que nos daría un total de 65536 * 3 = 196608 instrucciones(uS) o bien 196.608mS. Si queremos hilar fino allí podríamos pre-cargar al Timer por única vez con 256 - [(200000 - 196608) / 256] = 243 para contar con mayor aproximación los 200mS.
Hay que siempre intentar interrumpir la menor cantidad de veces. Pensás que en tu planteo se interrumpe cada 256 instrucciones, y la subrtuina de interrupción te consumiría mínimamente unos 40 de esos(entre demora del ingreso, salvar registros claves, identificar interrupcion, incrementar contadores y analizar, restaurar registros claves y volver). Haciendo eso solo el uC ya tiene un 15% del tiempo ocupado para hacer solamente eso. Haciendolo como yo te digo, el % de procesador consumido es de aproximadamente 0.08%.
Saludos.