407下dsp库函数使用

2019-07-21 03:51发布

做ad采样实验,采完一个工频周期后算有效值进一步处理,在计算有效值时使用dsp库函数,dsp库设置什么的都是按照例程里面DSP测试实验里搭建dsp运行环境来的,没有什么改动。现在就是ad采样后在调试界面可以看到dma里数组的各个采样瞬时值,但是经过函数计算后没有返回有效值,计算有效值的函数如下:
[mw_shl_code=c,true]//对一个工频周期内的值求有效值 void Getrms(void) { u16 count; //for(i=0;i<M;i++) for(count=0;count<N;count++) { rmsvalue[count]=(1.5-(float)value[count]*(3.3/4095.0))*(2000.0/3.0); } arm_rms_f32(&rmsvalue[N],N,&afterrms); }[/mw_shl_code] [mw_shl_code=c,true][/mw_shl_code] [mw_shl_code=c,true][/mw_shl_code] [mw_shl_code=c,true]afterems一直都是0,不知道为什么,求助论坛各位大大,或者还有别的算电压有效值比较好的方法也可以指点一下[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Theone
1楼-- · 2019-07-21 06:29
函数原型是
void arm_rms_f32(float32_t * pSrc , uint32_t blockSize , float32_t * pResult)
pSrc应该是首地址
所以应该写成
arm_rms_f32(rmsvalue,N,&afterrms);
试试看
还有 你用了FPU
写成rmsvalue[count]=(1.5f-(float)value[count]*(3.3f/4095.0f))*(2000.0f/3.0f);
如果不加f 计算的时候按照double类型 是不会通过FPU计算的
第九度
2楼-- · 2019-07-21 10:35
 精彩回答 2  元偷偷看……
styleno1
3楼-- · 2019-07-21 11:00
是这样的,FPU是单精度的。
wn1900
4楼-- · 2019-07-21 16:43
mark,路过,赞一个

一周热门 更多>