TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cocu3 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:
-
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í:
#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:
-
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 (http://www.todopic.com.ar/foros/index.php?topic=21609.0)
Varias comunicaciones simultaneas por 232 (http://www.todopic.com.ar/foros/index.php?topic=20689.0)
Alguien me puede ayudar, manejo de mas de un puerto serie con el PIC16F876 (http://www.todopic.com.ar/foros/index.php?topic=5620.0)
Config. 2 puertos seriales con 1 interrupcion(#INT_RDA) (http://www.todopic.com.ar/foros/index.php?topic=4664.0)
Ya sabes como dicen, el que busca encuentra :-) :-) :-).
Saludos.
-
ok amigos gracias por las respuestas, como siempre muy utiles :-/
saludos
-
Totalmente de acuerdo con el Dr. Gonzalo.
Y cito la frase de maunix: "lee, lee, lee, y luego pregunta".
Saludos, nos leemos! :mrgreen: