TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 23 de Octubre de 2009, 14:23:15

Título: Funcion "SquareMagnitudeCplx();"
Publicado por: micro_pepe en 23 de Octubre de 2009, 14:23:15
Estoy tratando hacer la FFT con un dsPIC30F4012.

El programa es una modificacion de uno que encontre en internet (En otro hilo en este mismo foro "analizador de espectro de audio"), el caso es que una vez echa la FFT utiliza esta funcion: SquareMagnitudeCplx(NUMSAMP, &inputSignal[0], &Power_Vector[0]);

Donde inputSignal es un fractcomplex, y Power_Vector es un fractional. Esta funcion no me viene en el Language Tools Libraries, pero imagino que en Power_Vector guarda el modulo del numero complejo inputSignal.

Si hago lo siguiente para visualizar el resultado: LCD_PUTUN(9,Power_Vector[0]); me aparece, con una señal continua variando entre 0 y 5v, una lectura de 0, 1 o 2.

Sin embargo si hago esto:  LCD_PUTUN(9,inputSignal[0].real);

Aparece una lectura entre 0 y 270, entonces no me cuadra el resultado, aunque se usen tipos de variable fractional yo estoy representando el contenido de los bit de la variable en decimal.

Espero alguna idea.

Un saludo.
Título: Re: Funcion "SquareMagnitudeCplx();"
Publicado por: micro_pepe en 24 de Octubre de 2009, 12:44:27
Asunto resuelto, el problema era configurar el ADC como datos fracionales.

Un saludo.
Título: Re: Funcion "SquareMagnitudeCplx();"
Publicado por: FEBB en 18 de Octubre de 2010, 18:48:59
Hola me gustaría saber como configuras el adc para que quede fraccional
Título: Re: Funcion "SquareMagnitudeCplx();"
Publicado por: hibiscusblau en 13 de Diciembre de 2012, 09:23:25
hola FEBB,

supongo que ya no las encontrado, pero para otros navegantes que lleguen a esta pregunta, puedes configurar el ADC tipo fractional en el registro ADCON1:

       ADCON1bits.FORM = 2;  // 11 Signal fractional, 10 Fractional, 01 Signed integer, 00 Integer