dsp语句执行时间问题??

2019-03-26 15:47发布

本帖最后由 huangyiqian1000 于 2014-9-4 08:34 编辑

ACtemp=AC_current/4096*3.3;
result1 = result1+ACtemp*ACtemp;(这是用来采样交流电流,来计算有效值)像这样的计算语句执行要多长时间。(ACtemp和result1均为float)
我把这语句放到timer1定时器中断里边就会影响到以timer0为触发源的ADC采样。
我把timer1的周期设为30000(为500US),timer0的周期为60*1000000(为1S),时钟脉冲为60MHZ。
有考虑到用IQ来做写,但是都不执行不知道是什么原因。
ACtemp=_iq29(AC_current/4096*3.3);
result1 = _IQ29(result1+ACtemp*ACtemp);
@maychang @soso @chenzhufly @dontium @常见泽1 @ltbytyn @ltbytyn @chunyang @tiankai001 @jishuaihu @lonerzf @huo_hu   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
lelee007
1楼-- · 2019-03-27 17:55
可以用长的数据类型,把运算数据放大变成定点乘法,最终的计算结果再除以被放大倍数,代码处理可能会多做一点工作,但是编译之后的步骤相对定点机器处理浮点除法的运算过程,会下降几个数量级
lelee007
2楼-- · 2019-03-27 18:26
哥只能说这么多了,剩下的就看你了,哈哈
dontium
3楼-- · 2019-03-28 00:13
 精彩回答 2  元偷偷看……
awpbuhui
4楼-- · 2019-03-28 03:42
 精彩回答 2  元偷偷看……
huangyiqian1000
5楼-- · 2019-03-28 07:14
awpbuhui 发表于 2014-9-4 15:44
AC_CURRENT是什么类型的。整数才能作移位运算,当然,无符号整数最安全。

之前为float 改为int 后还是出现同样的问题
Description Resource Path Location Type
#31 expression must have integral type isr.c /myFirstProject123com/Application line 84 C/C++ Problem
现在全部除法改为乘以对应的小数,执行时间少了很多

一周热门 更多>