modos de operacion de interrupciones arduino

11
Modos de operación del controlador de interrupciones. Luis Alonso Carbajal Vasquez Kevin Alexander García Flores

Upload: luis-carbajal

Post on 22-Jun-2015

993 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Modos de operacion de interrupciones arduino

Modos de operación del controlador de

interrupciones.

Luis Alonso Carbajal VasquezKevin Alexander García Flores

Page 2: Modos de operacion de interrupciones arduino

¿Qué es una interrupción?

Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa, sino que pertenece al sistema operativo.

La primera técnica que se empleó para esto fue el polling, que consistía en que el propio procesador se encargara de sondear los dispositivos periféricos cada cierto tiempo para averiguar si tenía pendiente alguna comunicación para él.

Page 3: Modos de operacion de interrupciones arduino

Básicamente, una sola computadora puede realizar solo una instrucción en un tiempo. Pero debido a que puede ser interrumpida, puede tomar turnos entre los programas o instrucciones que realiza. Esto se conoce como multitasking.

Page 4: Modos de operacion de interrupciones arduino

Tipos de interrupciones.

Existen dos diferentes tipos de interrupciones tanto como de hardware y software :

interrupciones de hardware:

son aquellas interrupciones que se producen como resultado de, por lo general, una operación de E/S. No son producidas por ninguna instrucción de un programa sino por las señales que emiten los dispositivos periféricos para indicarle al procesador que necesitan ser atendidos.

interrupción por software:

también denominadas llamadas al sistema, son aquellas generadas por un programa mientras este está ejecutándose.

Page 5: Modos de operacion de interrupciones arduino

Interrupciones en arduino.

El procesador de cualquier Arduino tiene dos tipos de interrupciones, externas(external) y de cambio de pines(pin change). El Arduino uno cuenta con solo dos pins de interrupciones externas: INT0 e INT1, y estan asignadas a los pines 2 y 3.

Estas interrupciones pueden ser puestas a activarse en subidas o bajadas de señal, o en bajo nivel. Las activaciones son interpretadas por el  hardware, y las interrupciones son muy rápidas.

Page 6: Modos de operacion de interrupciones arduino

A grandes rasgos, una interrupción es una señal que interrumpe la del actividad del procesador. Existen dos formas de activarlas interrupciones: 

• Evento interno -> Un cronómetro o señal software • Evento externo -> Un cambio de estado en un pin 

Las interrupciones de los chips AVR (los que usan nuestros arduinos) son “Asíncronas”, la cual cosa significa que ocurre fuera del flujo normal del programa, por lo que nos es muy útil a la  hora de programar, ya que no tenemos que estar pendiente de cómo estará el estado de dicho pin (si fuese externa) o del tiempo  que queda para que ocurra (si fuese interna), sino que es el la que nos avisa de  cuando ocurre el suceso. 

Page 7: Modos de operacion de interrupciones arduino
Page 8: Modos de operacion de interrupciones arduino

En Arduino podemos asociar el código de las interrupciones a través de la función attachInterrupt (). Las interrupciones o eventos que podemos asociar a las líneas mediante esta función en el Arduino Mega son las siguientes:

Parámetros.

Interrupción: el número de la interrupción (int).

Función: la función a la que invocar cuando la interrupción tiene lugar; esta función no debe tener parámetros ni devolver nada. Esta función es a veces referenciada como rutina de interrupción de servicio

MODO: define cuando la interrupción debe ser disparada. Hay cuatro constantes predefinidas como valores válidos

Page 9: Modos de operacion de interrupciones arduino

LOW: Para disparar la interrupción en cualquier momento que el pin se encuentre a valor bajo(LOW).

Cuando el nivel lógico de la línea es 0 (LOW)

CHANGE: Para disparar la interrupción en cualquier momento que el pin cambie de valor.

Cuando el nivel lógico de la línea cambia independientemente de su estado lógico (CHANGE)

RISING: Para disparar la interrupción cuando el pin pase de valor bajo (LOW) a alto (HIGH).

Cuando el nivel lógico cambia de 0 a 1 (RISING)

FALLING: Para cuando el pin cambie de valor alto (HIGH) a bajo (LOW).

Cuando el nivel lógico cambia de 1 a 0 (FALLING)

Page 10: Modos de operacion de interrupciones arduino

Utilidades de las interrupciones.

*Las interrupciones son útiles para hacer que las cosas sucedan automáticamente en programas para micro controladores, y puedan ayudar a resolver problemas de temporización.

*Permitir comunicación sin bloqueos con dispositivos periféricos. Conmutar tareas diferentes tareas dentro de lo planificado.

Desventajas de las interrupciones.

*El problema de este método es que el código se vuelve sumamente complejo cuando tenemos que monitorear muchas cosas.

*Por defecto no hay ningún código asignado para manejar las interrupciones.

Page 11: Modos de operacion de interrupciones arduino