- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IQmath 基本使用方法 (2812 为例子) 2010-08-10 10:29
IQmath 基本使用方法 (2812 为例子) 一 . 配置 CMD
PRAMH0 : origin = 0x100000, length = 0x008000
BOOT_ROM : origin = 0x3ff000, length = 0x000fc0 IQmathTables : BOOT_ROM, type = NOLOAD, PAGE = 0
IQmath : PRAMH0, PAGE = 0
二. 载入 gel 文件,加入 IQmath 库和头文件 IQmath.gel
IQmath.lib
IQmathLib.h
三.定义全局Q格式,和调试Q格式
#define GLOBAL_Q 20 // 全局为Q20格式,默认为Q24格式
long GlobalQ = GLOBAL //调试用为Q20格式(这样可以使用」Q(x)在监视器 中查看)
//
IQmath 中常用的变量和字符
QN 16bitQ 格式
IQN 32bitQ 格式N表示Q多少
int 16bit
long 32bit
_iq = _iqN = long
F 浮点数输入
S 浮点字符串
P 正数最大值
N 负数最大值
格式转化函数
一般情况下IQ都有IQN版本的函数
float _IQtoF(A)
//_iq
浮点转成正常浮点
float _IQNtoF(A)
int _IQtoQN(A)
//iq
和 q(16bit) 的转化
long _IQint(A)
//
提取 iq 的整数部分
_IQ(float F)
//
浮点转化成 iq
_IQN(float F)
_atoIQ(char *s)
//
字符串转化成 iq
_IQfrac(A)
//
提取 iq 的小数部分
_IQtoIQN(A)
//
全局 iq 和普通 iq 的转化
_IQNtoIQ(A)
_QNtolQ(i nt A)
算术函数
_I Qmpy(A, B)
//N*N
乘法
」Qrmpy(A, B)
//N*N
四舍五入的乘法最后保存结果前(四舍五入)
long」Qmpyl32int(A, B) 〃N*long IQ 乘 long 返回整数部分 long」Qmpyl32frac(A, B)//N*long IQ 乘 long 返回小数部分
」Qrsmpy(A, B) 〃N*N 四舍五入的饱和处理乘法(如果Q26[-32,+32],
如果相乘结果超过也会限制到这个范围)
」QmpyI32(A, B) 〃N*I ong IQ
_IQmpylQX(A, A1, B, B1) //N1*N2 」Qdiv(A, B) // N/N iq
乘 long
两个不同的Q格式乘法,返回全局Q格式 除法
三角函数
」Qsi n(A)
_IQsi nPU(A) //
位如果 sin((0.25*PI)/(2*PI))
」Qcos(A)
」QcosPU(A)
」Qata n2(A, B) //
」Qata n2PU(A, B) //
」Qata n(A, B) //
正弦函数(标幺值),你占这个圆周的几分之几为单
第四象限反正切tan-1(sin, cos) 第四象限反正切tan-1(sin, cos) 定点反正切 tan-1(1),,仁si n/cos
_IQNsi n(A)
_IQNsi nPU(A) // 位如果 sin((0.25*PI)/(2*PI)) 」QNcos(A)
_IQNcosPU(A)
」QNata n2(_iqA, B) //
」QNata n2PU(_iqA, B) //
」QNata n(A, B) //
正弦函数(标幺值),你占这个圆周的几分之几为单
第四象限反正切tan-1(sin, cos) 第四象限反正切tan-1(sin, cos) 定点反正切 tan-1(1),,仁si n/cos
数学函数
TOC \o 1-5 \h \z 」QNsqrt(A) //
_IQNisqrt(A) //
」QNmag(A, B) //
平方根 aA0.5
平方根倒数 1/aA0.5 求模运算(sqrt(AA2 + BA2)
IQsqrt(A) //
平方根 aA0.5
」Qisqrt(A) //
」Qmag(A, B) //
平方根倒数 1/aA0.5
求模运算(sqrt(AA2 + BA2)
其它函数
其它函数
_IQsat(A, long P, long N)//IQ
」QNabs(A) //IQ
数值的限幅函数把A限制到[N P]之间 数据的绝对值 |A|
_IQabs(A)
//IQ 数据的绝对值 |A|
文档评论(0)