




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IQMATH使用 冷眼心热作者:冷眼心热1IQmath库为了应用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里面添加以下代码即可:MEMORYPAGE 0:BOOTROM (RW) : origin = 0x3ff000 , length = 0x000fc0RAMH0 (RW) : origin = 0x 3f8000 , length = 0x002000SECTIONSIQmathTables : load = BOOTROM , type = NOLOAD , PAGE=0IQmath : 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_TYPEStypedef 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 (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#defineEINTasm( clrc INTM)/INTM置0,开中断#defineDINTasm( setc INTM)/INTM置1,关中断#defineERTMasm( clrc DBGM)/使能调试事件#defineDRTMasm( setc DBGM)/禁止调试事件二、参考TMS320C28x DSP CPU和指令集参考指南中对INTM和DBGM的解释(译的不好,凑合看吧。)1、DBGMBit 1:调试启用屏蔽位。当DBGM置位时,仿真器无法在实时状态下访问内存或寄存器。调试器无法更新其窗口。在实时调试模式中,若DBGM = 1,则CPU忽略停止请求或硬件断点,直到DBGM清零。DBGM并不阻止CPU停止在软件断点。这点的一个影响可以在实时调试模式中看到。如果你在实时调试模式中单步执行一个指令,并且这条指令置位DBGM,CPU继续执行指令,直到DBGM被清零。当你给TI调试器“实时”命令时(进入实时模式),DBGM强制为0。令DBGM = 0确保了允许调试和测试直接内存访问 (DT-DMAs);内存和寄存器的值可传递到主处理器,用于更新调试器窗口。CPU在执行中断服务程序(ISR)之前将DBGM置位。当DBGM = 1时,来自主处理器和硬件断点的停止请求被忽略。如果你想要单步执行程序或在对时间要求不严格的ISR中设置断点,那么你必须在ISR的开始处增加一条CLRC DBGM指令。DBGM主要用在时间要求严格的程序代码部分的仿真,来阻止调试事件。DBGM使能或禁止调试事件,如下:0调试事件使能。1调试事件禁止。当CPU响应中断时,DBGM的当前值存储到堆栈中(当ST1存储在堆栈中时),然后DBGM置位。当由中断返回时,DBGM由堆栈中恢复。此位可分别由SETC DBGM指令和CLRC DBGM指令复位和清零。DBGM在中断操作期间被自动置位。复位时,DBGM置位。执行ABORTI (中止中断)指令也可以将DBGM置位。2、INTMBit 0:中断全局屏蔽位。此位从全局上使能或禁止所有可屏蔽CPU中断(那些可由软件阻止的中断):0可屏蔽中断被全局使能。为了被CPU认可,则可屏蔽中断也必须被中断使能寄存器(IER)局部使能。1可屏蔽中断被全局禁止。即使一个可屏蔽中断被IER局部使能,也不会被CPU认可。INTM对非可屏蔽中断没有影响,包括硬件复位或软件复位中断NMI。此外,当CPU在实时仿真模式下被停止时,由IER和DBGIER使能的中断将被响应,即使INTM设置为禁止可屏蔽中断。当CPU响应中断时,INTM的当前值存储到堆栈中(当ST1存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新解读《GB-T 31154-2014太阳Hα耀斑分级》
- 小区景点管理方案范本
- j家政劳务合同范本
- 乙方终止租赁合同范本
- 终止合同范本告知书
- 模板租赁销售合同范本
- 农药商店聘用合同5篇
- 个人境外旅游合同范本
- 茶叶地租赁合同范本
- 承包竹子砍伐合同范本
- 2025年教科版新教材科学三年级上册全册教案设计(含教学计划)
- 从+“心”+出发遇见更好的自己-开学第一课暨心理健康教育主题班会-2025-2026学年高中主题班会
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 2025年苏教版新教材数学二年级上册教学计划(含进度表)
- 【无线射频电路】-微波笔记·糖葫芦低通滤波器的设计
- 大学通用俄语1
- 机械加工切削参数表
- 智能纤维案例
- 供应商现场考核记录
- 视频拍摄入门(上)课件
- 基础培训s8课件
评论
0/150
提交评论