Autor Tema: Problema para recibir datos RS232  (Leído 1330 veces)

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

Desconectado fer650

  • PIC10
  • *
  • Mensajes: 5
Problema para recibir datos RS232
« en: 07 de Octubre de 2015, 08:48:34 »
Hola, hace unos años hice un programa que capturaba los datos enviados por una balanza mediante RS232.
Ayer quise volver a usar parte de la rutina para probar la comunicación mediante #int_rda y no logro que funcione.
El programa lo fui resumiendo para evitar errores y quedó algo como ésto:

#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,PUT,NOBROWNOUT
#use delay(clock=20000000)
#pragma use rs232(baud=9600, xmit=PIN_C5, rcv=PIN_C7, bits=8, parity=N, ERRORS)
#include <flex_lcd4.c>

#int_rda
void serial_isr() {
lcd_putc(lcd_putc,"Hola ");
}


void main (){
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
lcd_init();
delay_ms( 100 );
lcd_putc(lcd_putc,"BALANZA ");
while(TRUE);
]



Cuando arranca aparece en el display la palabra BALANZA y me imagino que cuando hay un dato se activaría #int_rda y y debería mostrar "Hola". Nunca sucede.
Verifiqué con el osciloscopio en C7 y los pulsos llegan bien.
¿Que podrá ser? Muchas gracias!

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema para recibir datos RS232
« Respuesta #1 en: 07 de Octubre de 2015, 19:14:50 »
la directiva #pragma no la he utilizado en el "use" del RS232, has probado a quitarla??

en tu rutina de interrupcion, talves sea mejor solo colocar una bandera y tratarla en el main().
Nunca se deja de aprender

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Problema para recibir datos RS232
« Respuesta #2 en: 07 de Octubre de 2015, 19:45:06 »
Es raro que te este fallando solo veo dos cosas:
Xmit debe ser igual a pin_c6.
Debes revisar si efectivamente el equipo al que estas conectando el pic, esta transmitiendo los datos, porque de lo contrario se quedara el pic toda la vida esperando por un dato; para ello puedes conectar una resistencia y un led en serie entre Vcc y el pin_c7, para verificar que el pic le esten llegando datos.

Saludos

Desconectado fer650

  • PIC10
  • *
  • Mensajes: 5
Re: Problema para recibir datos RS232
« Respuesta #3 en: 07 de Octubre de 2015, 22:29:18 »
Hola, lo probé con y sin #pragma porque revisé otro programa anterior que también funcionaba.
 Lo probé con C6 y C7, pero es lo mismo. Para usar como salida a una impresora lo probé con distintos pines y siempre funciona. El problema es para recibir. Con el osciloscopio veo los pulsos.
 Si no uso la interrupción y uso getch () me recibe algunos caracteres pero nada lógico.
 Probé con varias velocidades pero es lo mismo.

Desconectado fer650

  • PIC10
  • *
  • Mensajes: 5
Re:Problema para recibir datos RS232
« Respuesta #4 en: 09 de Octubre de 2015, 08:12:50 »
Problema solucionado! Primero cambié el pin de recepción a C6 y empezó a recibir algo pero no se entendía nada. Para transmitir se puede cambiar por otros pero para recibir, por lo menos con este micro no. Después voy a probar con otros.
Y por último la señal a la entrada va invertida. Tiene que estar a 5V y bajar a 0 con los pulsos. Lo hice con un transistor NPN y una resistencia de 10k a +5V