diff options
Diffstat (limited to 'lab5/RTDSP/intio.c')
-rw-r--r-- | lab5/RTDSP/intio.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lab5/RTDSP/intio.c b/lab5/RTDSP/intio.c index debadab..d7f841b 100644 --- a/lab5/RTDSP/intio.c +++ b/lab5/RTDSP/intio.c @@ -47,6 +47,7 @@ int N = sizeof(a)/sizeof(a[0]); double* d; +double xin; /******************************* Global declarations ********************************/ @@ -78,6 +79,7 @@ DSK6713_AIC23_CodecHandle H_Codec; void init_hardware(void); void init_HWI(void); void ISR_AIC(void); +void iir_dir_form_transposed(void); /********************************** Main routine ************************************/ void main(){ d = (double*)malloc(N * sizeof(double)); @@ -130,13 +132,17 @@ void init_HWI() /******************** INTERRUPT SERVICE ROUTINE ***********************/ void ISR_AIC() { - int i; + xin = mono_read_16Bit(); + + iir_dir_form_transposed(); - short xin = mono_read_16Bit(); + mono_write_16Bit((short)d[0]); +} +void iir_dir_form_transposed() +{ + int i; for (i = 0; i < N; ++i) { d[i] = b[i] * xin + d[i+1] - a[i] * d[0]; } - - mono_write_16Bit((short)d[0]); } |