Ayuda leyendo información serial.

#1
Saludos, estoy trabajando con un PIC18F4550 y mediante esta definición hago que lo que vaya llegando por el puerto rx, lo lea la variable datos:

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8, stream=datos)

Hasta ahí todo bien, como los caracteres que necesito almacenar son 90, declaro la variable char c y char datosrec[100] como un string para mediante el siguiente ciclo ir almacenando cada caracter que llega:

while(conteo<=90)
{
c=fgetc(datos);
datosrec[conteo]=c;
conteo=conteo+1;
}

Una vez almacenado el string, comparo ciertas posiciones para verificar lo que necesito, así:

if (datosrec[27]==x & datosrec[56]==y & datosrec[90]==z)
{
printf ("Es igual);
}
else
{
printf("No es igual");
}

Hasta ahí todo bien, hace la comparación que necesito si es igual muestra "es igual" y sí no lo es muestra "no es igual".

Mi duda se presenta porque ahora necesito que constantemente se esté revisando la información que llega por ese puerto, porque en algún momento dejará de ser igual y ya necesito con eso dar otra orden al PIC, pero el problema que tengo es que solo busca por información una vez y de ahí ya quedan los datos almacenados en "datosrec" y no vuelve a buscar más, no sé qué opción me recomiendan, para que el PIC constantemente esté leyendo lo que entra.

Agradezco mucho sus posibles sugerencias.
 

Temas similares

Arriba