primer proyecto
// This project uses support files generated by Rulph Chassaing
// Comm routines included in C6xdskinit.c
#include "DSK6713_AIC23.h" //codec support
Uint32 fs=DSK6713_AIC23_FREQ_32KHZ; //set sampling rate
#define DSK6713_AIC23_INPUT_MIC 0x0015
#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_LINE;
//#include "impinv.cof"
#define NUM_SECTIONS 1
float b[NUM_SECTIONS][9] = { //numerador
0.00659120519580073341986414803272964491 ,
0.030214534833728844132050284088109037839 ,
0.075118915311778430843325793375697685406 ,
0.123483021097718873027027086664020316675 ,
0.144887051152322088309887249124585650861 ,
0.123483021097718873027027086664020316675 ,
0.07511891531177841696553798556124093011 ,
0.030214534833728844132050284088109037839 ,
0.00659120519580073341986414803272964491
};
float a[NUM_SECTIONS][9] = { //denominador
1 ,
-2.250519798585577824212577979778870940208 ,
4.513982248963650967255034629488363862038 ,
-5.797816453336070097179799631703644990921 ,
6.064237916061777866616466781124472618103 ,
-4.763935498954285030492883379338309168816 ,
2.894981991689346223495249432744458317757 ,
-1.223002904056729622794819078990258276463 ,
0.337195900754488020467647402256261557341
};
float w[NUM_SECTIONS][7] = {0};
interrupt void c_int11() //interrupt service routine
{
int section; //index for section
number
float input; //input to each section
float yn; //intermediate and output
//values in each
stage
input = ((float)input_left_sample());
for (section=0 ; section< NUM_SECTIONS ; section++)
{
yn = b[section][0] * input + w[section][0];
w[section][0] = b[section][1] * input + w[section][1] - a[section][1] *
yn;
w[section][1] = b[section][2] * input + w[section][2] - a[section][2] *
yn;
w[section][2] = b[section][3] * input + w[section][3] - a[section][3] *
yn;
w[section][3] = b[section][4] * input + w[section][4] - a[section][4] *
yn;
w[section][4] = b[section][5] * input + w[section][5] - a[section][5] *
yn;
w[section][5] = b[section][6] * input - a[section][6] * yn;
input = yn;
}
output_left_sample((short)(yn)); //before writing to codec
return;
}
void main()
{
comm_intr(); // Iniciar DSK, codec, McBSP
while(1); // Esperar que ocurra una interrupci�n
}