Interrupciones microcontroladores AVR


Compartir: Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr1Share on LinkedIn0

Interrupciones Microcontroladores AVR, los microcontroladores, en este caso los microcontroladores AVR, se programan para que realicen tareas de acuerdo a lo que interese, normalmente realizarán esas tareas en forma ordenada una tras otra en forma cíclica, a esto se le conoce como el programa principal; las interrupciones microcontroladores AVR son eventos que hacen que el programa principal se detenga, para que el microcontrolador AVR se dedique ha realizar otras tareas, mientras no ocurra una interrupción el microcontrolador solo realizará las tareas indicadas dentro del programa principal.

Cada modelo de microcontrolador AVR tendrá una serie de interrupciones que podrá detectar, para que se detecte las interrupciones microcontroladores AVR, es necesario programar algunos registros dependiendo de cual se quiere que sea la causa de las interrupciones, se tienen registros para habilitar las interrupciones microcontroladores AVR y registros para detectar cuando se han producido interrupciones.

Para la programación de los microcontroladores AVR y por tanto para las interrupciones microcontroladores AVR se utilizará el ATMEL STUDIO, mediante el cual se programa en C/C++, al programar las interrupciones microcontroladores AVR se tendrá que incluir una librería llamada interrupt.h de la siguiente manera:

#include<avr/interrupt.h>

 😎 MUY IMPORTANTE “Para obtener mas información sobre las librerías que se utilizan para programar los microcontroladores AVR en C/C++ se puede visitar este enlace, aquí se encontrará una descripción detallada sobre las diversas librerías con las que se cuenta para programar los AVR, las funciones que incluyen, los modelos de microcontroladores AVR en los cuales se pueden utilizar las librerías, ejemplos”.

En el siguiente enlace se puede ver toda la información respecto a la librería interrupt.h, el como iniciarla, como declararla, como utilizar sus funciones, como invocar las interrupciones y mucho mas, se recomienda mucho visitarla para tener información adecuada para el uso de esta librería.

Para habilitar el uso de interrupciones microcontroladores AVR en C/C++ se hace mediante la siguiente instrucción:

sei();//habilita el uso de las interrupciones globales.

Para deshabilitar el uso de interrupciones microcontroladores AVR en C/C++ se hace mediante la siguiente instrucción:

cli();//deshabilita todas la interrupciones.

Luego dependiendo de que tipo de interrupciones se quiere que se produzcan se tendrán que manipular algunos registros mas; los registros que le  correspondan a cada tipo de interrupción a utilizar se verán en sus respectivas secciones en los enlaces que se tendrán mas abajo o en el menú superior o lateral de está página.

Para las interrupciones microcontroladores AVR, la rutina de atención a las interrupciones se realiza mediante la siguiente macro:

ISR(causaDeLaInterrupcion_vect){

//tareas a realizar durante la interrupción

}

Donde causaDeLaInterrupcion es un nombre especial que se le da en C/C++ al evento o la causa o la fuente que será motivo de la interrupción, los nombres utilizados se puede encontrar en este enlace, en la sección que dice nombre vectorial, como se muestra en la siguiente imagen, en ella también se ve el nombre antiguo que se le daba, una breve descripción de la fuente de interrupción, ademas de los tipos de microcontroladores AVR en los cuales se puede utilizar; se recomienda visitar el enlace indicado, se verá que con práctica utilizar las interrupciones microcontroladores AVR no tiene mucha complicación.

interrupciones microcontroladores AVR

Por ejemplo para utilizar la rutina de interrupciones microcontroladores AVR por haberse completado una conversión analógica digital, se tendrá que proceder así:

ISR(ADC_vect){

//tareas a realizar durante la interrupción

}

En tareas a realizar dentro de la rutina de interrupciones hay que procurar en lo posible que sean lo mas cortas posibles, ya que el programa principal estará detenido en ese momento, evitar si es posible utilizar bucles.

Por ejemplo para el ATmega88, se recomienda revisar su hoja de datos, en la cual se puede ver que se tienen hasta 26 eventos que pueden producir interrupciones como se puede ver en la siguiente imagen.

interrupciones microcontroladores AVR vectores

INTERRUPCIONES MICROCONTROLADORES AVR

En los siguientes enlaces se comentarán las características  de algunas de las interrupciones para el microcontrolador AVR, para su programación se utilizará lo descrito líneas arriba con el ATMEL STUDIO.

.

Compartir: Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr1Share on LinkedIn0