Hola,
En primer lugar decir que he buscado por el foro pero no he encontrado nada que me funcine. El tema es que tengo que recibir 8 bytes seguidos por una UART por software y el programa funciona bien cuando los 8 bytes llegan pero si hay un error (quitar el cable, por ejemplo) no me salta el tiemout que he creado.
El código es:
short receive_bytes()
{
int nBytes = 0;
set_timer0(0);
while(nBytes < 8)
{
if(flagTimeout)
return 0;
if(kbhit())
{
buffer[nBytes++] = getchar();
}
}
return 1;
}
El Timer0 está configurado para que salte a los 60ms y active flagTimeout, nada más. Como digo, el programa se queda a la espera de los 8 caracteres, haya el tiempo que sea entre ellos.
Qué puede ser?