TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Sleiter en 14 de Agosto de 2017, 14:21:03
-
Hola, estoy intentando comunicar un pic 18f2550 a través de rs232 con el pc, el cual tiene un adaptador usb-rs232, el problema esta en que al momento de recibir la información, este entrega solo basura.
codigo:
#include <18f2550.h>
#fuses INTRC_IO,NOWDT,NOPROTECT,NOPUT,NOLVP,NOMCLR
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B1,rcv=PIN_B2,bits=8)
void main()
{
printf("\f");
while(1){
delay_ms(500);
printf("testing ");
}
}
y lo que me entrega es esto:
xxø€xøxxxø€x€øøøø
-
Definitivamente esto parece una diferencia entre los baudrates. Y lo que sospecho es que no estas configurando correctamente el oscilador interno del PIC.
Segun el datasheet, una vez que configuras el oscilador interno, este por default es de 8MHz, por lo que necesitas hacer una de dos cosas:
1) cambiar la directiva: #use delay(clock=4000000) por #use delay(clock=8000000)
2) O bien configurar el oscilador interno a 4MHz y para eso necesitas cargar el registro OSCON con el valor para 4MHz (ver la pagina 33 de la hoja de datos, para mas detalles).
Elreypic.
-
Definitivamente esto parece una diferencia entre los baudrates. Y lo que sospecho es que no estas configurando correctamente el oscilador interno del PIC.
Segun el datasheet, una vez que configuras el oscilador interno, este por default es de 8MHz, por lo que necesitas hacer una de dos cosas:
1) cambiar la directiva: #use delay(clock=4000000) por #use delay(clock=8000000)
2) O bien configurar el oscilador interno a 4MHz y para eso necesitas cargar el registro OSCON con el valor para 4MHz (ver la pagina 33 de la hoja de datos, para mas detalles).
Elreypic.
he intentado de distintas formas, pero aun sigue el problema, intente con el oscilador interno a 4 y 8 Mhz , también he intentado con uno externo,cambiando los fuse, pero el problema sigue siendo el mismo.
si realizo la prueba en proteus, este responde sin problemas y me muestra el mensaje, el problema es cuando esta montado.