gracias!!
Pero no consigo acabar de filtrar!!
en mi programa se produce una interrupción para que el dsPIc se comunique con el codec Si3000.
Y es entonces, en la interrupción donde se da la igualdad TXBUF=RXBUF;
(TXBUF es un int no?? )
Entiendo que la data que se recibe se copia directamente en el buffer de salida.
Luego, que es aquí donde tengo que filtrar mi señal.
Paso todos los parametros que necesita (incluyendo los coeficientes) a este. c llamado codec.c .
El rebuild me hace bien. Los ficheros están bien.
Entonces inicializo la función;
init_fir_float (&FIR_FIR150_5500be);
y a continuación en vez de escribir (con esto sale lo que entra y fundiona) :
void __attribute__((__interrupt__)) _DCIInterrupt(void) {
/*TXBUF0 = RXBUF0;
TXBUF1 = RXBUF1;
TXBUF2 = RXBUF2;
TXBUF3 = RXBUF3;
IFS2bits.DCIIF = 0;}*/
intento llamar a la función de filtrar de esta otra forma
void __attribute__((__interrupt__)) _DCIInterrupt(void) {
/*
arrayEntrada64[0+i_i] = RXBUF0;
arrayEntrada64[1+i_i] = RXBUF1;
arrayEntrada64[2+i_i] = RXBUF2;
arrayEntrada64[3+i_i] = RXBUF3;}
FIR_FIR150_5500be.filter(arrayEntrada64, arraySalida64, 64, &FIR_FIR150_5500be);
for (j_j=0; j_j>=64; j_j= j_j+4;)
TXBUF0 = arraySalida64[0+j_j];
TXBUF1 = arraySalida64[1+j_j];
TXBUF2 = arraySalida64[2+j_j];
TXBUF3 = arraySalida64[3+j_j];
}
IFS2bits.DCIIF = 0;
i_i=i_i+4;
y No oigo nada!!
què puede pasar??
GRACIAS