Tabla de Contenidos

Interrupciones en Arduino

Flujo de ejecución de una interrupción

El funcionamiento es semejante 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

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

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

Veamos sus parámetros a continuación:


Función ISR


Variables volátiles


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:


Consulta

Contenidos

  1. Arduino y las interrupciones (25-8-2017) (:!: sólo para alumnos matriculados)
  2. 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.