- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IQMATH使用 冷眼心热
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 = 0x 3f8000 , length = 0x002000
}
SECTIONS
{
????IQmathTables : load = BOOTROM , type = NOLOAD , PAGE=0
????IQmath : load =?RAMH0?, PAGE=0
?
}
以上代码的红色部分可以适当修改。IQmathTables段必须设置为NOLOAD型
(by:superchengmin)
2 IQ实例
注释:1 最后一句等效前面三句;
?
??????2 temp = AdcRegs.ADCRESULT0;此句中AdcRegs.ADCRESULT0类型为Uint16,此处插一句
//// For Portability, User Is Recommended To Use Following Data Type Size// Definitions For 16-bit and 32-Bit Signed/Unsigned Integers://
????#ifndef DSP28_DATA_TYPES????#define DSP28_DATA_TYPES????typedef int int16;????typedef long int32;????typedef unsigned int Uint16;????typedef unsigned long Uint32;????typedef float float32;????typedef long double float64;#endif
????这里看到typedef unsigned int Uint16在C语言中占16位,而_iq类型为typedef long _在C中占32位,赋值以后只改变temp低16位;
?
??????3 temp = _IQ16toIQ(temp);
//#define _IQ16toIQ(A) ((GLOBAL_Q = 16) ? ((long) A (GLOBAL_Q - 16)):((long) A (16 - GLOBAL_Q)))
????Result = _IQmpy(AdcFsVoltage, temp);
3 IQ使用效率
建议如果对某一浮点变量使用IQ运算,中间不要再转换成浮点:
使用IQmath算正弦效率很高,其内部采用查表方式,例如正弦有512个Q30正弦值,这样在进行正弦计算时可以保证一个周期最多可以取512个点,相当于对频率为f的正弦信号使用频率为最高为fs=512*f的取样信号进行取样,根据采样定理,fs2f,即原信号每个周期采样两点以上,即可无失真恢复原信号,实际工程上要想恢复原信号每个周期应当多于两点以上,但是每周期最多可采512点完全可以无失真的恢复原信号。
?
==========================================================================
【来自】/s/blog_6789d6e90100lauz.html
对程序中常出现的EINT、DINT、ERTM、DRTM的理解
作者:小世界
一、参考DSP281x_Device.h#define?EINT?asm( clrc INTM)?//INTM置0,开中断#define?DINT?asm( setc INTM)?//INTM置1,关中断#define?ERTM?asm( clrc DBGM)?//使能调试事件#define?DRTM?asm( setc DBGM)?//禁止调试事件二、参考《TMS320C28x DSP CPU和指令集参考指南》中对INTM和DBGM的解释(译的不好,凑合看吧。。。)1、DBGMBit 1:调
您可能关注的文档
最近下载
- 2024年4月广东深圳市光明区马田街道办事处招聘一般专干及笔试历年典型考题及考点剖析附答案带详解.docx
- 文秘技能大赛题库完整.pdf
- 建筑工程图集 07SJ504-1 隔断、隔断墙(一).pdf
- 班级管理方案和班委职责与班级管理条例(范本)合集.doc VIP
- 2025年广东省高中语文学业水平合格考试卷试题(含答案详解).pdf VIP
- 金融监管学银行监管讲义课件.pptx
- 高中体育与健康_篮球 传切配合 教学课件设计.ppt
- 二 《简单相信,傻傻坚持》(教学课件)-【中职专用】高二语文精讲课堂(高教版2023·职业模块).pptx VIP
- 人教版《劳动教育》九年级 劳动项目二《三餐有营养》课件.pptx
- 2024年中考语文一轮复习(全国)(老师用)议论文写作(练习).pdf VIP
文档评论(0)