Tabla de Contenidos

Interrupciones en Arduino

  1. Variables volátiles. Declaración y uso de variables volátiles: Cuando una variable está en la función asociada a la interrupción y en la función loop , tenemos que declararla como volatile int variable para que se sitúe en la RAM.

El funcionamiento es semejante, como puede verse, a cuando llamamos a una subrutina desde una línea del programa. Solo que en este caso no existe tal linea sino que la subrutina de interrupción se ejecutará en cualquier instante del programa, cuando se cumplan unas condiciones muy precisas.

Habilitación y configuración de la interrupción

Repasar en Arduino la instrucción

attachInterrupt ( digitalPinToInterrupt ( P ), Funcion, RISING );

Esa instrucción se pone en void setup(){} para habilitar y definir la interrupción.

Veamos los parámetros a continuación:

Efectos de la interrupción y la medición del tiempo

Las interrupciones tienen efectos en la medición del tiempo de Arduino, tanto fuera como dentro de la ISR, porque Arduino emplea interrupciones de tipo Timer para actualizar la medición del tiempo.

Efectos fuera de la ISR

Efectos dentro de la ISR. Dentro de la ISR el resto de interrupciones están desactivadas. Esto supone: