Autor Tema: ¿Que provoca una interrupción?  (Leído 2030 veces)

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

Desconectado jomu

  • PIC10
  • *
  • Mensajes: 16
¿Que provoca una interrupción?
« en: 20 de Julio de 2007, 22:13:58 »
Hola a tod@s,

Estoy haciendo un proyecto de final de carrera con un PIC16F88 y un PIC16F688. Hace días que estoy liado con la transmisión serie de datos des del 688 al 88, el problema lo tengo al recibir los datos des del 688 ya que después de deshabilitar todas las interrupciones excepto las del receptor de la AUSART se me produce una interrupción cuando el 688 aún no ha enviado nada.

Las instrucciones que hace el 88 antes que el 688 envíe nada son (entre otras que no vienen al caso):

   BANKSEL PIE1
   CLRF    PIE1      ;Borramos todas los bits de configuración de las interrupciones
   CLRF   PIE2   
   BSF    PIE1,RCIE    ;Habilitamos las interrupciones provocadas por el receptor de la AUSART
   
   BANKSEL INTCON      
   MOVLW    b'11000000'   ;Habilitamos las interrupciones generales y las de los "periféricos"
   MOVWF   INTCON

   BANKSEL RCSTA      
   BSF    RCSTA,CREN   ;Activamos la recepción de la AUSART

esperarinterrupcion
   GOTO esperarinterrupcion

y acto seguido se me dispara una interrupción CUANDO AÚN EL 688 NO HA ENVIADO NADA!!!!

Estoy desesperado! Cualquier ayuda, comentario... será bien venido ;)

Gracias

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ¿Que provoca una interrupción?
« Respuesta #1 en: 21 de Julio de 2007, 08:27:13 »
Es probable que la interrupcion se produzca cuando el pin cambia de estado durante la configuracion.
Ese solo cambio de estado ya alcanza para activar la interrupcion.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ¿Que provoca una interrupción?
« Respuesta #2 en: 22 de Julio de 2007, 05:35:39 »
¿Salta a la interrupción incluso desconectando los dos micros?
Si es así tendrás que buscar el problema en el 88. De lo contrario puede ser lo que te ha sugerido Marcos.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ¿Que provoca una interrupción?
« Respuesta #3 en: 23 de Julio de 2007, 09:50:57 »
¿Ese es todo tu código?

En la recepción:
Es casi seguro que el pin de entrada RXusart está a 0V.  Eso puede deberse a muchas causas, una de las cuales puede ser que el otro pic no esté siquiera inicializado cuando el pic que recibe ya está listo.


En la transmisión:

Si vas a transmitir con la usart por hardware, al habilitar la transmisión se enciende el bit TXIF porque así es el funcionamiento de la usart.

Eso indica que 'esta listo el buffer para enviar otro byte'.  Si tienes activada la TXIE esa es la razón por la cual se te activa ni bien enciendes el módulo.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado jomu

  • PIC10
  • *
  • Mensajes: 16
Re: ¿Que provoca una interrupción?
« Respuesta #4 en: 24 de Julio de 2007, 10:52:09 »
Muchas gracias a todos por comentar!

Ya encontré el problema, la interrupción venia por un cambio d'estado en el puerto B. Lo he solucionado conectando los puertos que estaban "flotando" a massa.

Hasta otra!