TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: OTSELECTRONICSEIRL en 31 de Agosto de 2009, 08:07:45

Título: Codificacion en C para la multiplicacion, divison y raiz cuadrada
Publicado por: OTSELECTRONICSEIRL en 31 de Agosto de 2009, 08:07:45
Buen dia. Estoy diseñando un wattimetro digital monofasico con PIC y necesito el codigo en C para implementar operaciones matematicas de suma, resta, multiplicaion, division, potenciacion y raiz cuadrada; ya sea para logica entera o logica decimal (la logica de la aritmetica). Todo esto es para hacer las operaciones involucradas en las formulas del calculo de Vrms, Irms, cos@ (f.d.p.), potencia activa, aparente y reactiva. Si tuvieran informacion al respecto agardeceria.
Saludos.
Título: Re: Codificacion en C para la multiplicacion, divison y raiz cuadrada
Publicado por: fabianjsm en 31 de Agosto de 2009, 08:43:44
Las operaciones de suma, resta, multiplicacion y division y las tienes implementadas en C  :shock:
Podes calcular la raiz utilizando el algoritmo Newton-Raphson, y la potencia con un bucle asi:

Código: C
  1. int potencia(int x, int y)
  2. {
  3.     int sgn;
  4.     int r=1;
  5.     if(y<0) {
  6.         y *= -1;
  7.         sgn = 1;
  8.     } else
  9.         sgn = 0;
  10.     while(y--)
  11.         r *= x;
  12.     if(sgn)
  13.         return 1/r;
  14.     return r;
  15. }

Los tipos de datos con los que trabajes deben ser los adecuados para que no se produzcan desbordes.
Título: Re: Codificacion en C para la multiplicacion, divison y raiz cuadrada
Publicado por: Suky en 31 de Agosto de 2009, 09:38:57
Seguramente también vas a necesitar el calculo del coseno, incluyendo el archivo math.h puedes utilizar las funciones trigonométricas. Para el calculo de estas se realiza la serie de Taylor truncada  ;-)


Saludos!