aboutsummaryrefslogtreecommitdiffstats
path: root/lab5/RTDSP/intio.c
diff options
context:
space:
mode:
Diffstat (limited to 'lab5/RTDSP/intio.c')
-rw-r--r--lab5/RTDSP/intio.c14
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]);
}