//============================================= // pass.c //============================================= #include "dsk6713.h" #include "dsk6713_aic23.h" #include "dsk6713_dip.h" #include "dsk6713_led.h" #include "coeff_pb.h" #include "pass.h" union union_AIC_data CodecIn, CodecOut; // defines CodecIn and CodecOut as 32 bits unsigned integer or // union of 2 short 16 bits signed integers CodecIn.channel[], CodecOut.channel[] short memo[2048], index=0; //Sampling frequency uint32_t fs=DSK6713_AIC23_FREQ_8KHZ; float y_c; float X[N+1]; //New ADC sample interrupt interrupt void c_int11() { //uint32_t yn; DSK6713_LED_off(0); CodecIn.uint =input_sample(); memo[index]= CodecIn.channel[1]; if (index++ ==2048)index=0; //... //... //... X[N] = CodecIn.channel[0]; int i = 0; for(i = 0; i < N+1; i++){ y_c += b[i]*X[N-i]; } for(i=0; i < N-1; i++){ X[i] = X[i+1]; } CodecOut.channel[0]= CodecIn.channel[0]; CodecOut.channel[0]= CodecIn.channel[0]; output_sample(CodecOut.uint); //real-time output DSK6713_LED_on(0); // permet de vérifier la durée du traitement avec une sonde sur la broche de la LED } void main() { DSK6713_DIP_init(); DSK6713_LED_init(); //init codec,DSK, MCBSP comm_intr(); // or without interrupt: comm_poll(); while(1) { //Dip switchs and leds example if (DSK6713_DIP_get(2) == 1) DSK6713_LED_off(1); else DSK6713_LED_on(1); } } //end of main