3 señales análogas en PIC

Un saludo foreros, vengo aca con una duda bastante interesante...

Me encuentro en la etapa inicial del desarrollo de un quadcopter (Helicoptero de 4 hélices), pero esto no es necesario saberlo para la resolución de mi duda, al grano como dijo el dermatólogo.

Me encuentro adquiriendo 3 señales análogas en un PIC 18F4455 con un cristal de 16MHZ, este cristal lo he seleccionado pues necesito una frecuencia especifica para generar un PWM con la conbinación de los timers, y he hecho una comunicación usb con labview, pero tengo problemas con el procesamiento de la señal, pues necesito procesarla porque estas señales provienen de un acelerometro, y cuando uso las funciones trigonometricas, la conexión usb no me funciona en LabView, aca abajo pondre parte del código.

Código:
void volt2ang()
{
                  medx1=((((med[0]*3.3)/1023.0)-1.65)/3.3);
                  medy1=((((med[1]*3.3)/1023.0)-1.65)/3.3);
                  medz1=((((med[2]*3.3)/1023.0)-1.8)/3.3);
                  
                  medR=sqrt(pow(medx1,2)+pow(medy1,2)+pow(medz1,2));
                  
                  Angx=asin(medx1/medR);
                  Angy=asin(medy1/medR);
                  Angz=asin(medz1/medR); 
}
en el vector med[] se encuentra cada una de los valores de la adquisición de 0 a 1024-1 (Adquisición a 10 bits). Esto necesito hacerlo en el PIC, pues el trabajo futuro sería hacer un control PID. Alguien ha usado las funciones trigonometricas en un PIC? :confused: que resultados a tenido? :confused: .

Muchas gracias de antemano a todos.
 
Atrás
Arriba