c语言1 qnan,运行程序时变量值为1.#QNAN是怎么回事?

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

我刚用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</

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值