curso

Páginas: 59 (14571 palabras) Publicado: 21 de febrero de 2015
INSTITUTO TECNOLÓGICO DE MORELIA

CURSO AVANZADO DE
PROGRAMACIÓN EN C DE
MICROCONTROLADORES AVR
POR DAVID INFANTE SÁNCHEZ

dinfante29@hotmail.com
dinfante@itmorelia.edu.mx

Revisión 8.0
Septiembre del 2008
Programación en C de los microcontroladores ATMEL
e-mail: dinfante29@hotmail.com

Autor: David Infante Sánchez
www.comunidadatmel.com

CAPÍTULO III. TÓPICOS AVANZADOS
3.1Manejo de las Interrupciones INT0 e INT1
Una interrupción, como su nombre lo indica, interrumpe el programa principal y ejecuta
una subrutina de interrupción donde se ejecuta el código que el programador desea, el
ejemplo mas representativo es el RESET de una PC cuando se presiona ese botón se
interrumpe el programa principal y vuelve a iniciar el programa.
Existen dos tipos de interrupción lasinternas o de software y las externas o de hardware,
por ejemplo la de reset es una externa ya que está asociada a una terminal. Las de software
son generadas por alguna condición en los periféricos, por ejemplo podemos habilitar una
interrupción cuando el ADC termine de hacer la conversión, o cuando suceda overflow en
el timer, etc.
El programa CodeVision en la parte de la configuración delchip se hace la configuración
de la interrupción ahí se habilita la interrupción y se programa la forma en que funcionará
la interrupción, y el CodeVision generará una subrutina de interrupción para esa
interrupción en particular.
Por ejemplo hay interrupciones que son por flanco de bajada en un pin, entonces, sucederá
una interrupción cuando haya un flanco de bajada en el pin. Lassubrutinas de interrupción
son como las funciones que hemos realizado, con la excepción de que las subrutinas de
interrupción SON LLAMADAS POR HARDWARE, es decir el microcontrolador llama a
la subrutina de interrupción cuando el evento sucede y que puede ser en cualquier
momento, en cambio las funciones que define el usuario son llamadas por el software según
donde haya escrito el programador elllamado de la función.

Figura 3.1 Ubicación de las interrupciones externas
En la figura 3.1 apreciamos las interrupciones externas INT0 e INT1 que están en los pines
4 y 5 del microcontrolador. Estas interrupciones las podemos configurar para que cuando
exista un 0 (low level) se genere una interrupción, si cuando salga de la interrupción sigue
Programación en C de los microcontroladores ATMELe-mail: dinfante29@hotmail.com

Autor: David Infante Sánchez
www.comunidadatmel.com

estando en 0 el pin volverá a saltar a la interrupción. Los otros modos de configurar esas
interrupciones es por flanco de subida (rising edge) o por flanco de bajada (falling edge) o
ambos flancos (any change).
Si se habilita la interrupción externa INT0 el codevision generará la siguiente subrutina, sise configura que la INT0 funcione en flanco de bajada, cada vez que en ese pin exista un
cambio de 1 a 0 saltará a esta interrupción donde el programador deberá colocar el código
que deberá ejecutarse en ese evento.
//External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
}
Si se habilita la interrupción externa INT1 el codevisiongenerará la siguiente subrutina.
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
// Place your code here
}
Importante. Vimos que la INT0 e INT1 son los pines 4 y 5, y que a su vez son los puertos
D2 y D3; así que si habilitamos las funciones de interrupción INT0 y la INT1, debemos
seleccionar esos pines para que sean de entrada; no debemos habilitarloscomo salida
porque ahora ya no funcionan como pines de entrada/salida sino como pines de entrada
donde detectarán un evento (flanco de bajada, subido, ambos o nivel 0 lógico) y en ese
momento saltará a la subrutina de interrupción.
Para probar las interrupciones de INT0 e INT1 se realizarán algunos programas para
entender su funcionamiento.

Programación en C de los microcontroladores ATMEL...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Cursos
  • Curso
  • Curso
  • En Curso
  • Curso
  • Curso
  • cursos
  • cursos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS