Autor Tema: #int_rda se dispara solo (rs232)  (Leído 2210 veces)

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

Desconectado dreyes

  • PIC10
  • *
  • Mensajes: 4
#int_rda se dispara solo (rs232)
« en: 22 de Mayo de 2013, 22:37:52 »
Estimados. Acerca de la interrupcion rs232. La estuve utilizando sin problema para algunas cosas simples como recibir solo un caracter y mientras utiliza lo que la documentacion de CCS dice, mas sus propios ejemplos venia todo bien. Ahora se me empezo a complicar queriendo trabajar con una cadena de caracteres como los que devuelven los modems sim900, etc.
Buscando errores en mi codigo vengo a descubrir que la interrupcion int_rda se ejecuta cuando inicia el codigo, luego de unos cuantos milisegundos sin haber recibido ni mandado yo intencionalmente caracteres por el hiperterminal. De hecho, en el main y antes de todo el codigo dentro del bucle infitito While (true){} seteo el puerto D de determinada forma con leds, al cabo de 1 o 2 segundo se ejecuta el evento de la interrupcion rs_232 sin yo haber mandado nada por la usart (osea enciendo otros leds para darme cuenta, ya que si hago un getc y luego un putc del supuesto caracater no printea nada por el hiperterminal, lo cual es logico porque no mande nada).
Disculpen por lo extensivo, pero es es normal que la interrupcion se ejecute al inicio cuando le damos tension al pic ?? Lo probe con el codigo que viene con el compilador y sucede tambien, por eso no subo codigo. Puede ser ruido ?? estoy trabajando a 9600.

En fin muchachos muchas gracias.



Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: #int_rda se dispara solo (rs232)
« Respuesta #1 en: 23 de Mayo de 2013, 02:33:19 »
¿Qué tienes conectado en el pin RX de la usart?

Desconectado dreyes

  • PIC10
  • *
  • Mensajes: 4
Re: #int_rda se dispara solo (rs232)
« Respuesta #2 en: 23 de Mayo de 2013, 11:37:21 »
Gracias Nocturno... Te cuento, he probando hasta dejando la pata sin conexion. En ppcio. las pruebas las estoy haciendo con el hiperterminal interno del pickit2. Osea mandando la pata 7 del puerto C a la entrada del programador usada para el hiperterminal del pickit2. Como te dije, tambien probe dejando el pin abierto, osea no deberia entrar ni salir nada al pic, sin embargo la interrupcion se dispara. Luego subo código para si alguien tiene ganas puede comprobarme si está bien o mal lo que digo.
Mi pregunta es si por alguna razon el compilador CCS tiene un bug o realiza una llamada a la interrupcion. Cuando se dispara lo que hago para comprarlo es encender un LED dentro de la interrupcion, a su vez hago un getc y luego un putc de ese caracter y no muestra nada, tambien comprobe que no es un "enter" lo que entra, osea que no se porque se disparo la isr.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: #int_rda se dispara solo (rs232)
« Respuesta #3 en: 23 de Mayo de 2013, 11:57:30 »
Dejándolo al aire no te aseguras, ya queda "flotante" y puede que entren interferencias. Mejor tira el pin a masa o a Vdd.

CCS no debería hacer que entrase en la interrupción porque sí, pero si quieres asegurarte, limpia la interrupción antes de activarla con clear_interrupts(INT_RDA);

Desconectado dreyes

  • PIC10
  • *
  • Mensajes: 4
Re: #int_rda se dispara solo (rs232)
« Respuesta #4 en: 23 de Mayo de 2013, 16:02:57 »
Bien, voy hacer un clear de la interrupcion para asegurarme y voy a mandar el pin a masa o al puerto serie, pero sin protoboard de por medio, lo voy a soldar (me imagino que puede haber ruido).
Igualmente Nocturno me aseguraste que el compilador no deberia por ningun motivo (bug) extraño de software entrar en el evento isr asi que eso me deja tranquilo por ese lado.

Muchas gracias
Saludos