TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: distro en 11 de Agosto de 2009, 20:39:23

Título: doble comunicacion serial
Publicado por: distro en 11 de Agosto de 2009, 20:39:23
Hola me presento primero: Me llamo Gonzalo y comencé a trabajar con microcontroladores como hace una semana  :embarrassed:.

Estoy trabajando en un proyecto con el pic 16f873a. Ya logre comunicarlo con el pc via max232, pero ahora me veo en la necesidad de establecer comunicación con otro dispositivo además. Para este nuevo dispositivo necesito sólo recibir información, en cambio el pc tiene que poder recibir y transmitir al mismo tiempo. Estube buscando en google y sé que se pueden definir otros pines para comunicación serial, pero solo encontre código para Assembler y la verdad es que no lo entiendo nada. Si alguien tiene información sobre cómo hacer esto en lenguaje C, o pudiese apuntarme en la dirección correcta, le estaria muy agradecido.
Título: Re: doble comunicacion serial
Publicado por: MLO__ en 12 de Agosto de 2009, 01:13:55
CCS? C18? o MikroC?

Título: Re: doble comunicacion serial
Publicado por: darck_khronos en 12 de Agosto de 2009, 01:26:26
Podrias intentarlo con una comunicacion Full duplex o Half pero para eso usarias protocolo 485 ya dependera de la aplicacion que necesites y la velocidad de bits
Título: Re: doble comunicacion serial
Publicado por: distro en 12 de Agosto de 2009, 01:39:33
CCS? C18? o MikroC?
Estoy trabajando con CCS (se me olvido mencionar...  :shock:)

Podrias intentarlo con una comunicacion Full duplex o Half pero para eso usarias protocolo 485 ya dependera de la aplicacion que necesites y la velocidad de bits
Esto significa ocupar los mismos pines rx y tx para el pc y el otro dispositivo?
Título: Re: doble comunicacion serial
Publicado por: darck_khronos en 12 de Agosto de 2009, 01:41:57
CCS? C18? o MikroC?
Estoy trabajando con CCS (se me olvido mencionar...  :shock:)

Podrias intentarlo con una comunicacion Full duplex o Half pero para eso usarias protocolo 485 ya dependera de la aplicacion que necesites y la velocidad de bits
Esto significa ocupar los mismos pines rx y tx para el pc y el otro dispositivo?

Eso siempre y cuando trabajes con el protocolo 485
Título: Re: doble comunicacion serial
Publicado por: darck_khronos en 12 de Agosto de 2009, 01:42:21
pero tendras minimo una pc y dos pics si tienes una pc y un pic mmm solo es gasto xD
Título: Re: doble comunicacion serial
Publicado por: Suky en 12 de Agosto de 2009, 10:11:17
Para crear 2 vias de comunicación en CCS:
Código: C
  1. #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,Stream=PC)
  2. #use rs232(baud=9600,parity=N,xmit=PIN_B1,rcv=PIN_B0,bits=8,Stream=Dispositivo, Force_sw)


Luego para recibir un dato:

Código: C
  1. DataPC=fgetc(PC);
  2. DataDis=fgetc(Dispositivo);

Para enviar:

Código: C
  1. fputc(0xA3,PC);
  2. fputc(0x78,Dispositivo);

Enviar string:
Código: C
  1. fprintf(PC,"Comunicando con PC");

Saludos!
Título: Re: doble comunicacion serial
Publicado por: MLO__ en 12 de Agosto de 2009, 11:31:40
Puedes revisar el ejemplo EX_ENCRY.C, ahi implementan dos USART.

Saludos
Título: Re: doble comunicacion serial
Publicado por: distro en 12 de Agosto de 2009, 17:46:14
Excelente gracias, funciona perfecto :mrgreen: