TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micronet3 en 14 de Noviembre de 2016, 16:59:21

Título: reicibiendo cadena de texto con gets
Publicado por: micronet3 en 14 de Noviembre de 2016, 16:59:21
saludos.
queria hacer una consulta

yo estoy recibiendo datos por el puerto serie del microcontrolador haciendo uso de la funcion gets.
el problema es que gets se pone a esperar indefinidamente hasta que llegue un enter. como hacer para que solo espere un determinado tiempo y despues aborte la recepcion de datos?

saludos y gracias
Título: Re:reicibiendo cadena de texto con gets
Publicado por: KILLERJC en 15 de Noviembre de 2016, 09:22:50
gets() es un problema por ese motivo. Lo mas fiable es usar la interrupcion y usar getch(), ya que al ocurrir la interrupcion hay 1 solo dato y el getch siempre va a tener un valor.

Luego lo almacenas en un array ( el mismo que usas para el gets) y cuando detectas el retorno de carro o salto de linea \r\n procedes  a terminar el array con 0x00 y activar una variable de 1 bit, avisandole al main que tu dato ya esta y puede leerlo.