Interrupciones de Timer permiten realizar una tarea a intervalos muy específicamente programado independientemente de qué está sucediendo en el código. En este instructable voy a explicar cómo configurar y ejecutar una interrupción temporizador claro sobre un partido de comparar o modo de CTC. Saltar directamente al paso 2 Si usted está buscando un código de ejemplo.
Normalmente cuando se escribe un sketch de Arduino que Arduino ejecuta todos los comandos encapsulados en la función loop() {} el orden en que están escritos, sin embargo, es difícil para eventos en el loop(). Tardan más que otros para ejecutar algunos comandos, algunos dependen de condicionales (if, mientras que...) y algunas funciones de biblioteca de Arduino (como digitalWrite analogRead) se componen de muchos comandos. Arduino interrupciones de temporizador le permiten pausar momentáneamente la secuencia normal de acontecimientos que tienen lugar en la función loop() en intervalos de tiempo precisamente, mientras se ejecuta un conjunto separado de comandos. Una vez terminados estos comandos Arduino recoge otra vez donde estaba en el loop().
Interrupciones son útiles para:
Medición de una señal en intervalos equidistantes (frecuencia de muestreo constante)
Calcular el tiempo entre dos eventos
Enviando una señal de una frecuencia específica
Comprobar periódicamente los datos entrantes en serie
mucho más...
Hay varias maneras de hacer interrupciones, para ahora lo enfoco en el tipo que me parece el más útil flexibles, llamado temporizador claro partido comparar o modo de CTC. Además, en este instructable voy escribiendo específicamente sobre los temporizadores de la Arduino Uno (y cualquier otra Arduino con el ATMEL 328/168... LilyPad, Duemilanove, Diecimila, Nano...). Las ideas principales presentadas aquí se aplican a la Mega y más viejos tableros, pero la configuración es un poco diferente y la tabla a continuación es específica para ATMEL 328/168.