Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como interrupciones

Gestión de interrupciones con Arduino

Cuando se diseña un programa, lo habitual es pensarlo como un flujo de instrucciones que se ejecutan una detrás de otra siguiendo una ejecución secuencial. En el contexto de los microprocesadores y los microcontroladores, si estuviéramos limitados sólo a este modelo secuencial, el desarrollo de aplicaciones sería más complicado. Os pongo un ejemplo muy simplificado: si el sistema que estamos diseñando tiene que atender una serie de actuadores (por ejemplo un botón), tendremos que andar sondeándolos periódicamente para ver si se pulsó el botón. ¿Pero qué ocurre si se pulsa un botón mientras el programa anda ocupado en otra tarea y justo en ese momento no se está sondeando la entrada del actuador? En este caso el sistema no será capaz de detectar la pulsación. La solución en este caso es el uso de interrupciones. Cuándo se dispara una interrupción, el procesador detiene la ejecución del programa que está corriendo, almacena el estado de los registros (incluido el contador de programa)...

Interrupciones en MSP430

En el artículo anterior exploramos los mecanismos básicos de entrada/salida del microcontrolador MSP430. Para ello usábamos una técnica llamada polling o sondeo en la que explícitamente preguntábamos en cada instante el estado del pulsador para poder actuar en consecuencia. Esta técnica es sencilla y directa, pero tiene algún que otro inconveniente. Desde el punto de vista del programador, el código puede complicarse si tenemos que controlar varias señales de E/S y además el código suele ser propenso a errores si no tenemos cuidado. Por otro lado, desde el punto de vista del consumo energético es bastante ineficiente, ya que el micro se pasa todo el tiempo sumido en un bucle infinito preguntando por el estado del pulsador. Huelga decir que en un sistema autónomo alimentado con baterías puede hacer que nuestro diseño sea inviable. Para solventar esta situación se utilizan, entre otras técnicas, las interrupciones. El mecanismo de las interrupciones permite que los periféricos, t...