Estoy usando PIC18F y actualmente intento conectarlo con SIM900. Estoy usando la interrupción UART Rx. ISR está funcionando correctamente, pero me pregunto cómo obtener datos en el ciclo principal. Digamos:
#pragma interrupt hi_prioriint
void hi_prioriint(void)
{
if(PIR1bits.RCIF==1)
{
Rx = ReadUSART(); //store the received byte in Rx
}
}
Ahora quiero usar Rx
en el ciclo principal. Por ejemplo, si envío el comando AT
, necesito verificar si recibí OK
o ERROR
de SIM900. (Por el momento solo lo estoy probando con un solo byte y lo convertiré más tarde en cadenas de recepción porque la respuesta del SIM900 es en forma de cadena)
Ejemplo:
putrsUSART("AT\r"); //sending AT command
delay(500) //delay of 500ms
if(strcmp(Rx,"OK")==0) //checking the response
{
//if received OK then proceed further
}
Entonces, ¿cómo usar los datos de RX de ISR en el bucle principal?