Blog informal de profesores, ayudantes y alumnos de la asignatura Electrónica Digital 3, de la Factultad de Ciencias Exactas, Físicas y Naturales de la Universidad Nacional de Córdoba
miércoles, 12 de octubre de 2011
Ejemplo de Interrupciones
En el archivo que les vinculo abajo hay un provecto en Eclipse basado en el código de Matías Anún para usar interrupciones.
Ejemplo de Interrupciones
URL: https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B3-4Ewxut6n3NzRmZTZmNDEtYWJjMy00MzQzLTk3MzQtYjc4ZjYzNWViYjlk&hl=en_US
Hagan clic en "Más información »"!!!
El programa deben importarlo en Eclipse como "Existing Projetcs into Workspace"
Y luego tienen que poner "Select archive file":
Con eso habrán insertado el proyecto.
No tienen la estructura de carpetas como la que están acostumbrados a ver, pero ustedes concéntrense en el main.c y en como define las interrupciones.
Sobretodo fíjense como define la función de interrupción usando
__attribute__ ((interrupt("IRQ")));
También noten que lo único que hace es invertir la variable "flag" para que parpadee o no el led. La idea es que aprendan a como representar las funciones de interrupciones y cargar los vectores de servicio de interrupción en C.
La línea
VICVectAddr0=(unsigned) EINT0_interrupt;
Lo que hace es cargar en VICVectAddr0 la posición de la función EINT0_interrupt para que el programa salte a dicha posición cuando ese VIC Vector es apuntado.
En los archivos armVIC.c y armVIC.h están las funciones para habilitar y deshablitar las interrupciones (algunas de ellas están en assembler para poder camiar el registro cpsr).
Por supuesto, para entender que es todo ésto les recomiendo que lean el ebook en PDF "ARM7 Insider Guide"
Sin haber leído la parte de interrupciones (sobretodo la que está explicada en GCC, al final del libro) no van a poder entender el ejemplo.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario