Autor Tema: multiples puertos seriales  (Leído 3977 veces)

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

Desconectado cocu3

  • PIC12
  • **
  • Mensajes: 77
multiples puertos seriales
« en: 30 de Mayo de 2008, 20:53:42 »
buen dia, mi pregunta es saber si en el 18f4550 puedo tener varios puertos seriales que funcionen al tiempo, es decir si puedo recibir al tiempo varias señales por varios pines de entrada y si esto se puede hacer en el ccs

o solo puedo tener un puerto serial??? :shock: :shock: :shock:

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: multiples puertos seriales
« Respuesta #1 en: 30 de Mayo de 2008, 21:24:19 »
Saludos!
Qué casualidad, hoy mencionábamos eso en otro post pero referente a tener dos buses i2c.
En efecto cocu, se pueden implementar también varias interfaces seriales. Puedes tener una por hardware y una o varias más por software. Sin embargo es importante recalcar que si implementas la interfaz serial por software no puedes usar interrupción por puerto serie. Aunque por allí recomendaron colocar los pines de la interfaz serial por software entre RB4:RB7 y usar la interrupción por cambio en puerto B.
Bueno pues ya yendo al punto, lo que tienes que hacer es declarar dos o más #use rs232 con su respectiva identificación.
En el proyecto que estoy desarrollando actualmente lo tengo así:

Código: [Seleccionar]
#define Tx  PIN_C6
#define Rx  PIN_C7
#define Rg  PIN_C0
#use delay (CLOCK=20000000)
#use rs232 (STREAM=GPS,BAUD=4800,RCV=Rg)
#use rs232 (STREAM=PC,BAUD=19200,XMIT=Tx,RCV=Rx)

Aquí trabajo con un PIC16F877. Como verás la primera rs232 es por software, y la uso sólo para recibir. La segunda es por hardware y la uso para recepción y transmisión.
Luego cuando quieras enviar o recibir, lo que tienes que hacer es colocar la "STREAM" que corresponda.
Para recibir:
dato=fgetc(STREAM);
Por ejemplo, en mi caso: dato=fgetc(GPS); o dato=fgetc(PC), según el caso.
Para enviar:
fputc(dato,STREAM);
Por ejemplo: fputc(dato,PC);

Esto es bastante sencillo cocu, y funciona de maravilla.
Espero que puedas solucionar tu problema, ya nos contarás.

Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: multiples puertos seriales
« Respuesta #2 en: 30 de Mayo de 2008, 21:36:43 »
Hola cocu3, para no generar temas que repitan temáticas ya existentes, te invito a que utilices el buscador del foro, muchas personas ya han implementado dos o más puertos seriales en CCS, te dejo algunos links muy interesantes:

Dos puertos serie con PIC 16F876 y compilador CCS

Varias comunicaciones simultaneas por 232

Alguien me puede ayudar, manejo de mas de un puerto serie con el PIC16F876

Config. 2 puertos seriales con 1 interrupcion(#INT_RDA)

Ya sabes como dicen, el que busca encuentra  :-) :-) :-).

Saludos.

"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado cocu3

  • PIC12
  • **
  • Mensajes: 77
Re: multiples puertos seriales
« Respuesta #3 en: 31 de Mayo de 2008, 22:35:59 »
ok amigos gracias por las respuestas, como siempre muy utiles :-/

saludos

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: multiples puertos seriales
« Respuesta #4 en: 31 de Mayo de 2008, 22:45:17 »
Totalmente de acuerdo con el Dr. Gonzalo.
Y cito la frase de maunix: "lee, lee, lee, y luego pregunta".
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web