我刚用C6711的simulator试了一下,使用dsp67x.lib, 从TI的网站下载sprc121.zip解压缩之后就有这个库文件. 当调用DSPF_sp_biquad时只要最后一个参数(滤波的点数)不是3的倍数,程序就从那个函数里出不来.
#include
#include "dspf_sp_biquad.h"
float B[] = {1.0, 0, 0};
float A[] = {0, 0};
float inbuf[128];
float outbuf[128];
float delay[2];
void main(void)
{
int i, j;
float *pIn, *pB, *pA, *pDly, *pOut;
int cnt;
cnt = 128;
for (i=0; i
{
inbuf[i] = i+1;
outbuf[i] = 0.0;
}
delay[0] = 0.;
delay[1] = 0.;
pIn = inbuf;
pB = B;
pA = A;
pDly = delay;
pOut = outbuf;
DSPF_sp_biquad(pIn, pB, pA, pDly, pOut, 3);
j = cnt;
}
TI的DSPF_sp_biquad函数C程序如下:
void DSPF_sp_biquad (
float x[], //Pointer to input samples</

本文介绍了在使用C6711 DSP的模拟器上,调用DSPF_sp_biquad函数时遇到的问题。当滤波点数不是3的倍数时,程序无法正常退出。作者提供了函数的C语言实现,并疑惑可能是由于库函数使用了汇编实现导致的异常。
最低0.47元/天 解锁文章
2861

被折叠的 条评论
为什么被折叠?



