Hola foro, este es mi primer post en este foro, ya he leído bastante, gracias al foro pude armarme el GTP-USB-Lite, pronto viene el ICD2, y he aprendido un montón leyendo acá, creo que es hora de pedirles ayuda

Resulta que quiero usar la función PowerVector que viene en la librería dsp (uso C30).
#include <p30f4011.h>
#include <LCD Nokia C30.h> //gracias a nocturno por esta :mrgreen:
#include <dsp.h>
extern fractional VectorPower ( int numElems, fractional* srcV); // esta es la funcion en cuestion
extern float Fract2Float (fractional aVal); //si no hago esto, no puedo mostrar el resultado con printf
fractional v1[8]={0.1, 0.1, 0.1, 0.1 ,0.1, 0.1, 0.1 , 0.1};
fractional* iptr; //puntero iptr
fractional vrms;
int main(void)
{
TRISE=0x0; /Pto. E salida (aqui puse la LCD nokia)
TRISB=0xFFFF; //Pto. B entrada
iptr=&v1; // dir de mem del vecor v1
#ifdef UsaNokiaLCD
#endif
lcd_init(); // Inicialización LCD
ADC_Init();
while(1)
{
vrms=VectorPower(8, &iptr);
volts= Fract2Float (vrms);
printf("val= %.2f dBa" ,volts
); DelayMs(200);
}
}
La definición de la función que da el 16-Bit Language Tools Libraries, es esta:resultado=sum(Vn^2), Vn son los elementos del vector.
El tema es que si hago la función anterior con el vector que ahí sale, da como resultado 0.01, siendo que debiera ser 0.08.
Creo que mi problema está en el manejo de los punteros, ya que no los tengo claros aún.
Espero que puedan darme una mano con este tema,
Muchas gracias de antemano.