這是我的第一個問題(編碼相當新穎),所以會嘗試儘可能多地包含信息,因爲我現在很難過!預期聲明
我正在嘗試編寫代碼,該代碼將創建butterworth過濾器以適合用戶輸入規範。我使用的Code Composer 4.
讓Google有54個錯誤,我有一個持續1個左:
"expected a declaration" on line 27: if (n=1 && hpf=0)
我有三重檢查大括號,任何想法?
編輯:
嗨,再次感謝所有的幫助。自那時起就排序了很多舊問題,但又一次撞上了一堵磚牆;代碼將不會寫入coffic.cof文件(或者在文件被刪除時創建)。沒有錯誤出現,但文件保持不變。任何想法?
P.S.遺憾前面的代碼佈局 - 希望這是更好的:
#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;
}
您的所有代碼都必須在函數內。你不能在頂層有這樣的if。並請縮進您的代碼。 – Mat 2013-05-02 11:01:28
你應該縮進和格式化你的代碼,這很可怕,不可讀。此外,你沒有指出哪一行是第27行。 – 2013-05-02 11:01:36
我的眼睛......他們在流血。 – holgac 2013-05-02 12:14:45