电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

IQmath应用总结

IQmath应用总结_第1页
1/6
IQmath应用总结_第2页
2/6
IQmath应用总结_第3页
3/6
IQmath 应用总结 在 F2812 的 ROM 中,有 3K× 16 位被保留用于存放数学公式表以及未来的开发。主要应用于高速度和高精度的实时计算,比同等程度的ANSIC C 语言效率更高,同时可以节省用户更多的设计和调试时间。在此我对IQmath 的应用做一下总结,纯属个人见解,仅供大家参考。 1 IQmath 库 为了应用IQmath,首先要从TI 官方网站下载IQmath 库,文档名称为SPRC087。我们主要应用库里面的:IQmath.cmd, IQmathLib.h, IQmath.lib。新建一个工程,将IQmath.lib, IQmath.cmd 添加到工程,同时在 main()函数之前增加语句:#include “IQmathLib.h”。注意:rts2800.lib 和DSP281x_Headers_nonBIOS.cmd 也要加到工程里面。 当然也可以不用IQmath.cmd 文件,而用自己的CMD 文件,只要在你的CMD 里面添加以下代码即可: MEMORY { PAGE 0: BOOTROM (RW) : origin = 0x3ff000 , length = 0x000fc0 RAMH0 (RW) : origin = 0x3f8000 , length = 0x002000 } SECTIONS { IQmathTables : load = BOOTROM , type = NOLOAD , PAGE=0 IQmath : load = RAMH0 , PAGE=0 } 以上代码的红色部分可以适当修改。IQmathTables 段必须设置为NOLOAD 型。 2 IQmath 应用 完成以上几步之后就可以在你的主函数里应用IQmath 提供的函数进行计算了。建议在应用之前把IQmathLib.h 浏览一下,了解各个函数是怎样实现的。下面举一个简单的例子: #include "DSP281x_Device.h" #include "IQmathLib.h" #define PI 3.14159 _iq sinout_iq; float sinout_flt; void main(void) { InitSysCtrl(); InitXintf(); DINT; IER=0X0000; IFR=0X0000; sinout_iq=_IQ29sin(_IQ29mpy(_IQ29(0.25),_IQ29(PI))); sinout_flt=_IQ29toF(sinout_iq); for(;;){} } 上述代码的功能是计算sin(π /4)的值,然后赋给sinout_flt,计算结果如图2.1 所示。 图 2.1 实例计算结果 sinout_iq 值的格式为_iq29 类型(也就是long 型,参见IQmathLib.h),所以要通过函数_IQ29toF(sinout_iq)转化为float 类型,才是我们需要的最终结果。 除个别函数外,一般情况下,计算公式里的所有变量都为一个iq 类型,如上述主函数的第6 行语句,全为_iq29 类型。函数的具体讲解请参考IQmath 手册,在此不再啰嗦。 3 Q 格式的选择 IQmath 一共提供了30 种 Q 格式,具体选择哪种格式要兼顾...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

IQmath应用总结

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部