Autor Tema: Recepción de cadena en XC8 (Funcion GETS)  (Leído 2764 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado IngLara

  • PIC10
  • *
  • Mensajes: 2
Recepción de cadena en XC8 (Funcion GETS)
« 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
« Última modificación: 01 de Diciembre de 2014, 15:50:18 por IngLara »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Recepción de cadena en XC8 (Funcion GETS)
« Respuesta #1 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);

Desconectado IngLara

  • PIC10
  • *
  • Mensajes: 2
Re: Recepción de cadena en XC8 (Funcion GETS)
« Respuesta #2 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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Recepción de cadena en XC8 (Funcion GETS)
« Respuesta #3 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();

Desconectado egar1956

  • PIC10
  • *
  • Mensajes: 2
Re:Recepción de cadena en XC8 (Funcion GETS)
« Respuesta #4 en: 24 de Noviembre de 2015, 08:22:37 »
Hola, gente.
¿Tienen alguna idea cuando la cadena es de longitud indeterminada ?

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:Recepción de cadena en XC8 (Funcion GETS)
« Respuesta #5 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.