This is my first question (quite new to coding) so will try and include as much info as possible 'cos right now I'm stumped!
I'm attempting to write code that will create a butterworth filter to fit user input specifications. I'm using Code Composer 4.
Having google away 54 errors I have a persistent 1 left:
"expected a declaration" on line 27: if (n=1 && hpf=0)
I have triple checked curly brackets, any ideas?
EDIT:
Hi again, thanks for all the help. Have sorted old problems and more since then but have hit a brick wall again; the code won't write over (or create if the file is deleted) the coffic.cof file. No errors appear but the file just remains the same. Any idea?
P.S. sorry about the previous code layout - hopefully this is better:
#include "dsk6713_aic23.h" //codec-DSK support file
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
# include <stdio.h>
# include <math.h>
# include <stdlib.h>
#define pi 3.1415927
#include "coffic.cof"
void main()
{
double hpf, fs, fco, atn, fat, tp, k, ad, m, n, o, da, db, dc;
FILE *fp;
int c, d, e, f, g, h, i, q, r, s, t, u, v;
hpf = 0; //for a high-pass filter input 1, for a low-pass filter input 0
fs = 8000; //input samping frequency here
fco = 2400; //input cut-off frequency here
atn = 17; //input attenuation (dB) here
fat = 3500; //input the frequency of attenuation here
tp = 1/fs;
k = tan(pi*fco*tp);
ad = tan(pi*fat*tp);
m = (log10((pow(10,(atn/10)))-1))/(2*(log10(ad/k)));
o = abs(m);
n = ceil(o);
da = 1.414;
c = (pow(2,15)*k*k/(1+da*k+k*k));
d = (pow(2,15)*2*k*k/(1+da*k+k*k));
e = (pow(2,15)*k*k/(1+da*k+k*k));
q = (pow(2,15)*(2-2*k*k)/(1+da*k+k*k));
r = (pow(2,15)*(-1+k-k*k)/(1+da*k+k*k));
fp = fopen("U:\DSK6713\Ivo\CSP\coffic.cof", "w");
if (fp == NULL)
{
printf("Error. Unable to open coffic.cof");
exit(0);
}
fprintf(fp, "int a[3]={%d, d%, %d};\n", c, d, e);
fprintf(fp, "int b[3]={1, d%, %d};\n", q ,r);
fprintf(fp, "int x[3]={0,0,0};\nint y[3]={0,0,0};\n");
fflush(fp);
fclose(fp);
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
interrupt void c_int11() //interrupt service routine
{
short input;
FILE *fp;
fp = fopen("U:\DSK6713\Ivo\CSP\coffic.cof", "r");
if (fp == NULL)
{
printf("Error. Unable to open coffic.cof");
exit(0);
}
fclose(fp);
x[2]=x[1];
x[1]=x[0];
y[2]=y[1];
y[1]=y[0];
input=input_sample();
x[0]=input;
y[0]=a[0]*x[0]+a[1]*x[1]+a[2]*x[2]+b[1]*y[1]+b[2]*x[2];
y[0]=y[0]>>15;
input=(short)y[0];
output_sample(input); //output data
return;
}