Soy algo nuevo en los pic, mas que todo en la parte de la comunicación serie. me propuse realizar un proyecto interesante en el cual quiero controlar un carro RF por bluetooth desde un celular Android. Por motivos de tiempo no podre realizar una aplicacion para android pero por suerte encontré esta:
Google playLo unico que necesito es la lectura de los acelerometros del celular para usarlo como control, según el programa este los envía así:
--------------------------------------------------------------------------------------------------------------
Los datos se envían como una matriz de caracteres, de acuerdo con la norma
aXbYcZd en la que:
X = accel_X
Y = accel_Y
Z = accel_Z
Los valores que figuran en las direcciones X, Y y Z son números enteros. Para capturarlos en el código de Arduino, debe formar cadenas de todos los caracteres entre el carácter 'a' y el carácter 'b' y los convierte al formato de número entero a trabajar normalmente.
--------------------------------------------------------------------------------------------------------------
Mi pregunta es, si todo eso lo envía como una cadena, como puedo separarlo para obtener X, Y y Z. Investigando vi un codigo que quizás servirme para esto:
#int_rda
rda_isr()
{
dato=getc();
if(dato=='a') X=getc();
else if(dato=='b') Y=getc();
else if(dato=='c') Z=getc();
}
Lo que no me queda claro es si al entrar a la parte de "X=getc();" en X se almacenaran todos los caracteres restantes (osea "XbYcZd") hasta que termine el envió de datos saltándose así el IF donde comprueba el carácter "b", si es asi tendria que indicarle que al llegar una "b" empiece a guarda en "Y=getc();"
Espero que me puedan ayudar, busque lo mas que pude, pero por desconocimiento en el tema no se como realizar una búsqueda mas especifica hacia mi problema.
PD: utilizo el pic 16f877A y pienso adquirir el modulo bluetooth esclavo HC-06.