TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: IngLara en 01 de Diciembre de 2014, 14:34:59

Título: Recepción de cadena en XC8 (Funcion GETS)
Publicado por: IngLara en 01 de Diciembre de 2014, 14:34:59
Buen día todopicsianos! :D

Hoy tengo una duda, y espero puedan ayudarme, estoy trabajando con un módulo GSM (sim900), y quiero comunicarlo con el PIC, estoy utilizando el 16F1938 en XC8, la aplicación que quiero hacer es relativamente sencilla, consiste en recibir un mensaje y cuando lo reciba mande un pulso (prenda un led o algo, (si quieren mas detalles del proyecto, puedo hacerlo)) pero comunmente sabemos como mandar un "string", pero no se como recibirlo, es decir, en el codigo solo recibo un caracter, pero como puedo esperar una cadena de caracteres completa?


Código: [Seleccionar]
static void interrupt isr(void)
{
    if (RCIF && RCIE)
    {
        RCIF = 0;
        dato_rc = RCREG;
    }
}


Con este codigo recibo un caracter.

Como seria la funcion para recibir una cadena?
Tengo entendido, necesito la funcion "gets", pero que parametros contiene dicha funcion? como puedo hacerla y/o en que libreria lo encuentro?

Espero puedan ayudarme, de antemano muchas gracias
Título: Re: Recepción de cadena en XC8 (Funcion GETS)
Publicado por: KILLERJC en 01 de Diciembre de 2014, 23:05:35
Nunca lo use pero mirando codigos:

void getsUSART ( char * buffer, unsigned char len );

O si tiene varios USART gets1USART ( puntero al array, longitud de datos a recibir en bytes ), y el uso deberia ser este...


char miarrray[20];
void getsUSART ( miarray, 20);
Título: Re: Recepción de cadena en XC8 (Funcion GETS)
Publicado por: IngLara en 02 de Diciembre de 2014, 13:25:47
muchas gracias amigo! de casualidad sabes en que "include" se encuentra? yo encontre gets (sin el USART) y esta en la libreria string.h

y aunque me ha funcionado bien, siempre ha quedado subrayado en rojo... :P
Título: Re: Recepción de cadena en XC8 (Funcion GETS)
Publicado por: KILLERJC en 02 de Diciembre de 2014, 13:57:33
en usart.h estan los prototipos de funciones:

void OpenUSART ( unsigned char config,  unsigned spbrg);
char ReadUSART (void);
void WriteUSART ( char data);
void getsUSART ( char *buffer,  unsigned char len);
void putsUSART ( char *data);
void putrsUSART ( const MEM_MODEL char *data);
BusyUSART();
Título: Re:Recepción de cadena en XC8 (Funcion GETS)
Publicado por: egar1956 en 24 de Noviembre de 2015, 08:22:37
Hola, gente.
¿Tienen alguna idea cuando la cadena es de longitud indeterminada ?
Título: Re:Recepción de cadena en XC8 (Funcion GETS)
Publicado por: MerLiNz en 24 de Noviembre de 2015, 09:09:47
si es de tamaño indeterminado no se puede, esa funcion lo que hace unicamente es leer el numero de caracteres que le indicas, lo unico que puedes hacer es determinar el tamaño maximo, por ejemplo 20 caracteres y siempre poner de envio 20 caracteres y de recepcion 20.