以下程序目的是计算 3.456*x.
CPU为;TMS320F2812
1、请问以下两种方法,哪种速度更快?
2、利用IQMATH算法计算的结果总差一个数,不知何原因?
long ad1,ad2;
浮点计算法:
long test1(long x)
{
float fvar1;
long var2;
fvar1=3.456;
var2=fvar1*x;
return var2;
}
IQMATH计算法:
long test2(long x)
{
long var1;
long var2;
var1=_IQ15(3.456);
var2=var1*x;
var2=var2>>15;
return var2;
}
ad1=test1(1000); 结果为3456 正确;
ad2=test2(1000); 结果为3455 差 1
HG:
定点处理器当然要用软浮点库啦
以下程序目的是计算 3.456*x.
CPU为;TMS320F2812
1、请问以下两种方法,哪种速度更快?
2、利用IQMATH算法计算的结果总差一个数,不知何原因?
long ad1,ad2;
浮点计算法:
long test1(long x)
{
float fvar1;
long var2;
fvar1=3.456;
var2=fvar1*x;
return var2;
}
IQMATH计算法:
long test2(long x)
{
long var1;
long var2;
var1=_IQ15(3.456);
var2=var1*x;
var2=var2>>15;
return var2;
}
ad1=test1(1000); 结果为3456 正确;
ad2=test2(1000); 结果为3455 差 1
zengbo li:
回复 HG:
fvar1=3.456; var2=fvar1*x;
我查看了汇编,这里确实用了软浮点库, l_tofs fs_mpy fs_tol 等软浮点库中的函数。 我想学习一下这些函数,但在C:\ti\ccsv6\tools\compiler\c2000_6.2.5\lib\src这里找不到一个PDF说明文件, 不知哪里能找到相关资料,谢谢!
以下程序目的是计算 3.456*x.
CPU为;TMS320F2812
1、请问以下两种方法,哪种速度更快?
2、利用IQMATH算法计算的结果总差一个数,不知何原因?
long ad1,ad2;
浮点计算法:
long test1(long x)
{
float fvar1;
long var2;
fvar1=3.456;
var2=fvar1*x;
return var2;
}
IQMATH计算法:
long test2(long x)
{
long var1;
long var2;
var1=_IQ15(3.456);
var2=var1*x;
var2=var2>>15;
return var2;
}
ad1=test1(1000); 结果为3456 正确;
ad2=test2(1000); 结果为3455 差 1
zengbo li:
回复 HG:
请问scr 库 和 rtsrcr库存有何区别?
以下程序目的是计算 3.456*x.
CPU为;TMS320F2812
1、请问以下两种方法,哪种速度更快?
2、利用IQMATH算法计算的结果总差一个数,不知何原因?
long ad1,ad2;
浮点计算法:
long test1(long x)
{
float fvar1;
long var2;
fvar1=3.456;
var2=fvar1*x;
return var2;
}
IQMATH计算法:
long test2(long x)
{
long var1;
long var2;
var1=_IQ15(3.456);
var2=var1*x;
var2=var2>>15;
return var2;
}
ad1=test1(1000); 结果为3456 正确;
ad2=test2(1000); 结果为3455 差 1
10#:
回复 zengbo li:
在你列出的路径下,是存在这些函数的源代码的,有些是C有些是ASM,但并没有提供文档说明。可以参考的是编译器手册spru513和spru514.