Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
doc:tec:elo:uc_arduino:arduino_int:inicio [2025/03/25 13:59] – [Habilitación y configuración de la interrupción] fepg | doc:tec:elo:uc_arduino:arduino_int:inicio [2025/03/25 14:04] (actual) – [Habilitación y configuración de la interrupción] fepg | ||
---|---|---|---|
Línea 15: | Línea 15: | ||
</ | </ | ||
- | * '' | + | * '' |
+ | * Si damos el pin, el programa se encarga de buscar la interrupción. | ||
- | * '' | + | * '' |
+ | * Es el pin que detecta la interrupción. | ||
+ | * **En el Arduino Nano es el '' | ||
- | * '' | + | * '' |
+ | * Función asociada a la interrupción. Se ejecuta al producirse la interrupción. | ||
+ | * En otro lugar del programa deberemos declararla '' | ||
* '' | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | \\ | ||
+ | ===== Función ISR ===== | ||
+ | |||
+ | * La función asociada a una interrupción se denomina **ISR** (// | ||
+ | |||
+ | * Dos ISR no pueden ejecutarse de forma simultánea. En caso de dispararse otra interrupción mientras se ejecuta una ISR, la función ISR se ejecuta una a continuación de otra. | ||
+ | |||
+ | * **La ISR, cuanto más corta mejor**. Al diseñar una ISR debemos mantener el menor tiempo de ejecución posible, dado que mientras se esté ejecutando el bucle principal y todo el resto de funciones se encuentran detenidas. | ||
+ | * Imaginemos, por ejemplo, que el programa principal ha sido interrumpido mientras un motor acercaba un brazo para coger un objeto. Una interrupción larga podría hacer que el brazo no para a tiempo, tirando o dañando el objeto. | ||
+ | |||
+ | * Frecuentemente la función de la ISR se limitará a activar un flag, incrementar un contador, o modificar una variable. Esta modificación será atendida posteriormente en el hilo principal, cuando sea oportuno. | ||
+ | |||
+ | * No emplear en una ISR un proceso que consuma tiempo. Esto incluye cálculos complejos, comunicación (serial, I2C y SPI) y, en la medida de lo posible, cambio de entradas o salidas tanto digitales como analógicas. | ||
\\ | \\ | ||
===== Variables volátiles ===== | ===== Variables volátiles ===== |