资源描述:
《iqmath基本使用方法(2812为例子)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、IQmath基本使用方法(2812为例子)2010-08-1010:29IQmath基本使用方法(2812为例子)一.配置CMDPRAMH0 :origin=0x100000,length=0x008000 BOOT_ROM :origin=0x3ff000,length=0x000fc0IQmathTables :>BOOT_ROM,type=NOLOAD,PAGE=0IQmath :>PRAMH0, PAGE=0二.载入gel文件,加入IQmath库和头文件IQmath.gelIQmath.libIQmathLib.h三.定义全局Q
2、格式,和调试Q格式#defineGLOBAL_Q 20//全局为Q20格式,默认为Q24格式longGlobalQ=GLOBAL //调试用为Q20格式(这样可以使用_IQ(x)在监视器中查看)//-----------------------------IQmath中常用的变量和字符QN 16bitQ格式IQN 32bitQ格式N表示Q多少int16bitlong32bit_iq=_iqN=longF浮点数输入S浮点字符串P正数最大值N负数最大值格式转化函数一般情况下IQ都有IQN版本的函数float_IQtoF(A) //_iq浮点转成正常浮点flo
3、at_IQNtoF(A)int_IQtoQN(A) //iq和q(16bit)的转化long_IQint(A) //提取iq的整数部分_IQ(floatF) //浮点转化成iq_IQN(floatF)_atoIQ(char*s) //字符串转化成iq_IQfrac(A) //提取iq的小数部分_IQtoIQN(A) //全局iq和普通iq的转化 _IQNtoIQ(A)_QNtoIQ(intA)算术函数long_IQmpyI32int(A,B)//N*longIQ乘
4、long返回整数部分long_IQmpyI32frac(A,B)//N*longIQ乘long返回小数部分_IQmpy(A,B) //N*N乘法_IQrmpy(A,B) //N*N四舍五入的乘法最后保存结果前(四舍五入)_IQrsmpy(A,B) //N*N四舍五入的饱和处理乘法(如果Q26[-32,+32],如果相乘结果超过也会限制到这个范围)_IQmpyI32(A,B) //N*longIQ乘long_IQmpyIQX(A,A1,B,B1)//N1*N2两个不同的Q格式乘法,返回全局Q格式_IQdiv(A,B)
5、 //N/Niq除法三角函数_IQsin(A)_IQsinPU(A) //正弦函数(标幺值),你占这个圆周的几分之几为单位如果sin((0.25*PI)/(2*PI))_IQcos(A)_IQcosPU(A)_IQatan2(A,B) //第四象限反正切tan-1(sin,cos)_IQatan2PU(A,B) //第四象限反正切tan-1(sin,cos)_IQatan(A,B) //定点反正切 tan-1(1),,1=sin/cos_IQNsin(A)_IQNsinPU(A)
6、 //正弦函数(标幺值),你占这个圆周的几分之几为单位如果sin((0.25*PI)/(2*PI))_IQNcos(A)_IQNcosPU(A)_IQNatan2(_iqA,B) //第四象限反正切tan-1(sin,cos)_IQNatan2PU(_iqA,B) //第四象限反正切tan-1(sin,cos)_IQNatan(A,B) //定点反正切 tan-1(1),,1=sin/cos数学函数_IQNsqrt(A) //平方根 a^0.5_IQNisqrt(A) //平方根倒数 1/a
7、^0.5_IQNmag(A,B) //求模运算(sqrt(A^2+B^2)_IQsqrt(A) //平方根 a^0.5_IQisqrt(A) //平方根倒数 1/a^0.5_IQmag(A,B) //求模运算(sqrt(A^2+B^2)其它函数_IQsat(A,longP,longN)//IQ数值的限幅函数把A限制到[NP]之间_IQNabs(A)