Autor Tema: Que son las interrupciones?  (Leído 2124 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jjcastillo_7

  • PIC10
  • *
  • Mensajes: 2
Que son las interrupciones?
« en: 05 de Noviembre de 2010, 15:25:28 »
Hola soy nuevo en el foro, me gustaria me explicaran de una manera sencilla que son como y para que se utilizan las interrupciones en los pic, creo que son de utilidad pero no las entiendo bien.

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Que son las interrupciones?
« Respuesta #1 en: 05 de Noviembre de 2010, 15:54:24 »
Una interrupción es un evento al que el PIC da respuesta con una subrutina específica.
Por ejemplo, puedes utilizar una interrupción externa para detectar cuando se abre una puerta y programar una subrutina asociada a esa interrupción que haga solar una alarma.
Además de las interrupciones externas, los microcontroladores generan otras de forma interna; por ejemplo, puedes programar un timer (o cronómetro) para que genere una interrupción cada milisegundo, y utilizar la subrutina asociada a esa interrupción para actualizar la hora de un reloj.
También hay eventos de comunicación que generan interrupciones específicas; por ejemplo, cuando se reciben datos por el puerto serie se genera una interrupción que puedes atender con la subrutina correspondiente para leer esos datos.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Que son las interrupciones?
« Respuesta #2 en: 05 de Noviembre de 2010, 19:22:58 »
.


Una interrupción es un evento particular que hace que el uC abandone el programa que venía ejecutando y salte automáticamente a una dirección específica de la memoria de programa. En las familias 12 y 16 la dirección a donde se dirige cuando ocurre la interrupción es la 0x04. Una vez que retorna de la interrupción,  vuelve a donde se había dejado el programa principal y sigue ejecutando desde ahí.
Tenés que fijarte en la hoja de datos del uC que estés usando para ver cuáles son las interrupciones que permite y cómo hacer para activarlas/desactivarlas. Después del reset (por lo general) todas las interrupciones se encuentran deshabilitadas, al estar en 0 el bit GIE (el 7º) del registro INTCON.
Para mostrarte más específicamente cómo usarlas, nos deberías decir en qué lenguaje programás  ;-)

¡Saludos!

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado jjcastillo_7

  • PIC10
  • *
  • Mensajes: 2
Re: Que son las interrupciones?
« Respuesta #3 en: 15 de Noviembre de 2010, 11:11:43 »
.


Una interrupción es un evento particular que hace que el uC abandone el programa que venía ejecutando y salte automáticamente a una dirección específica de la memoria de programa. En las familias 12 y 16 la dirección a donde se dirige cuando ocurre la interrupción es la 0x04. Una vez que retorna de la interrupción,  vuelve a donde se había dejado el programa principal y sigue ejecutando desde ahí.
Tenés que fijarte en la hoja de datos del uC que estés usando para ver cuáles son las interrupciones que permite y cómo hacer para activarlas/desactivarlas. Después del reset (por lo general) todas las interrupciones se encuentran deshabilitadas, al estar en 0 el bit GIE (el 7º) del registro INTCON.
Para mostrarte más específicamente cómo usarlas, nos deberías decir en qué lenguaje programás  ;-)

¡Saludos!

Gracias por las respuestas
Hice un proyecto que lee 40 alarmas externas con contacto a tierra, use un 16f87A, nose programar en assembler y no me gusta, use un mikrobasic para programar el PIC, este lo que usa es un contador que recorre todas las posiciones de la matriz en forma continua y si encuentra un contacto a tierra genera un carácter, usando una max232 hacia una PC, después de eso uso visual Basic para interpretar los caracteres que le llegan al puerto serial, el problema es que cuando el escaneado del PIC recorre una posición que tiene contacto a tierra, en ese momento en forma correcta genera el carácter de alarma hacia el PC, pero en el segundo siguiente cuando pasa a la otra posición este carácter se coloca en posición normal como si no hubiera alarma, en caso de que la alarma persista en la siguiente ronda vuelve a detectar la alarma y así sucesivamente, pero en el panel de alarma que aparece en la pantalla del PC, esta alarma se ve como si fuera intermitente, ya que solo se presenta cuando el escaneado del PIC pasa por ella, la pregunta es  si las interrupciones me servirían para de alguna manera hacer que esta alarma se quede el suficiente tiempo para que no se vea en forma intermitente en la pantalla.





 

anything