Autor Tema: Interrupciones con 16f84 en comunicación serie  (Leído 2010 veces)

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

Desconectado Cronos

  • PIC10
  • *
  • Mensajes: 10
Interrupciones con 16f84 en comunicación serie
« en: 02 de Septiembre de 2006, 14:57:43 »

Hola,

Llevo buscando información de interrupciones ni se sabe el tiempo!! :(
El caso es que estoy realizando una comunicación serie entre un PIC y un terminal que responde de forma autonoma a mis ordenes a traves del RS232.
La comunicación serie me funciona, el problema lo tengo cuando me responde el terminal. No se como de grande es la información que me devuelve. Puede enviar desde 2 Bytes hasta 16bytes.
La unica forma de controlarlo que he visto en PIC con USART es a traves de la "interrupción timer" y la "interrupción puerto serie". Cuando ha recibido un caracter por el puerto espera otro, y si pasa un tiempo (timer) deja de esperar .
1.- :(¿Puedo hacerlo esto con el 16f84 que no tiene USART?

2.- :( Actualmente estoy utilizando "#use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A4, PARITY=N, BITS=8) "
Puedo hacer una interrupción con el PIN_A4 a traves de la interrupcion externa?

3.- :( Necesito cambiar el PIN_A4 a uno del puerto B para poder utilizar la interrupción del puerto B?

Como podeís ver mi gran problema es que no entiendo cuando se puede utilizar la interrupción externa.
Alguien puede lanzarme un salvavidas, me estoy hundiendo, Glu, Gluuu, Glu... :8}
 

"En la vida existen 10 tipos de personas los que saben binario y los que no" ;-)

Desconectado Arlequin

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 340
Re: Interrupciones con 16f84 en comunicación serie
« Respuesta #1 en: 02 de Septiembre de 2006, 17:23:31 »
Raulgl:
Como comentaste se hace por medio de #int_TIMER0, donde se da un tiempo máximo de espera. Si la trama de datos siguiente demora más de este tiempo, habrá interrupción. Para obtener interrupción cada vez que tengas un caracter, deberás usar #int_ext.

#use rs232(baud=9600, xmit=PIN_B1, rcv=PIN_B0, PARITY=N, BITS=8)

Saludos.

¡¡Ex - c3poa!!            ---       Collapsing New People

Desconectado Cronos

  • PIC10
  • *
  • Mensajes: 10
Re: Interrupciones con 16f84 en comunicación serie
« Respuesta #2 en: 02 de Septiembre de 2006, 17:47:28 »

Hola c3poa,

gracias por responder :-), hay algo que no acabo de entender, según creo hay diferentes tipos de interupciones alguna de ellas son la TIMER0 y otra la INT_EXT. Tengo claro que la TIMER0 se activara una vez supere el tiempo que se programe. ¿Pero la INT_EXT en mi caso cuando puedo aplicarla?, cuando reciba un dato por la RA4?

Creo entender que se activa cuando se produce un evente externo, ¿Cualquier entrada?
Por favor alguien me puede explicar cuando se activa la interrupción INT_EXT  :shock:


"En la vida existen 10 tipos de personas los que saben binario y los que no" ;-)

Desconectado Arlequin

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 340
Re: Interrupciones con 16f84 en comunicación serie
« Respuesta #3 en: 02 de Septiembre de 2006, 20:09:58 »
Raulgl:
La interrupción #INT_EXT se activará cuando tengas un evento en RB0 (El 16F84 tiene una sola interrupción externa), por eso tenés que configurar a este pin como receiver, no por RA4, osea:

#use rs232(baud=9600, xmit=PIN_B1, rcv=PIN_B0, PARITY=N, BITS=8)

Saludos.

¡¡Ex - c3poa!!            ---       Collapsing New People

Desconectado Cronos

  • PIC10
  • *
  • Mensajes: 10
Re: Interrupciones con 16f84 en comunicación serie
« Respuesta #4 en: 03 de Septiembre de 2006, 04:15:02 »

Muchas gracias C3poa!!  :o

Manos a la obra  :-/
"En la vida existen 10 tipos de personas los que saben binario y los que no" ;-)