HOLA!!
Pregunta 1:
No consigo acabar de filtrar!!
creo mi código en C del filtro con la herramienta DsPICfdLite
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??
Alguien tiene un ejemplo de un filtro integrado a un proyecto cualquiera ya creado?
Pregunta 2:
Dado que derrepente me aparecía warning 0020 me he bajado la versión MPLAB 7.0
y este me da otro error del que he leido en este foro que parece que es de la versión el 0083!! Alguien lo confirma? Tiene solución?
Luego voy a volver a la versión vieja 6.5!
Pregunta 3:
Alguien me podría decir si el error 0020 puede ser debido al conector del cable que conecta el ICD2 con la placa? Importa qué lado del cable coloques en el ICD2?
Gracias a todos como siempre!!!
(Esto de las versiones..
)
GRACIAS