TI中文支持网
TI专业的中文技术问题搜集分享网站

F28335-Q格式问题

程序中有一句  _iq   SpeedRef   =_IQ(0.15),其中全局的Q格式是24,可不可以这样理解,speedref的十进制的数值就是0.15*2^24的值?

求助ti人,1.怎样理解IQ的计算?

               2,程序中的iq值可以看作是标幺值吗

ZENGZHEN XING:

回复 Martin Yu:

您好,还是有点疑惑,比如说我想将一个数2516582转化成_IQ24格式,应该怎样计算。

还有就是怎样实现将一个变量转化成IQ格式,比如说iq i= iq(x*y),其中x,y都是变量,我在程序中写,总是报错,说expression  must has a constant value.

程序中有一句  _iq   SpeedRef   =_IQ(0.15),其中全局的Q格式是24,可不可以这样理解,speedref的十进制的数值就是0.15*2^24的值?

求助ti人,1.怎样理解IQ的计算?

               2,程序中的iq值可以看作是标幺值吗

ZENGZHEN XING:

回复 Jay:

恩,那您觉得

1、我想在程序中将浮点型转换为Iq格式,是不是应该这样_iq i = x / 2^24,

2、_IQ12toIQ(x)这种语句又是什么意思

程序中有一句  _iq   SpeedRef   =_IQ(0.15),其中全局的Q格式是24,可不可以这样理解,speedref的十进制的数值就是0.15*2^24的值?

求助ti人,1.怎样理解IQ的计算?

               2,程序中的iq值可以看作是标幺值吗

Martin Yu:

回复 ZENGZHEN XING:

ZengZhen,

两种方法:

1. 先将x和y分别先转换成IQ格式的,再相乘:i =  _IQmpy(_IQmtoIQ(x), _IQmtoIQ(y)),其中m指你的x和y的IQ格式,如IQ15或IQ0等;

2. 先计算x*y的值,然后再转换为IQ格式:i = _IQmtoIQ(_IQmpy(x*y)); 前提是x和y都是同样IQ格式的,m的含义如上;

注意几点:

1. IQ格式的数据相乘需要调用_IQmpy(A,B)函数;

2. IQ相乘的结果是两个IQ数的叠加,如两个IQ15的数相乘的结果是IQ30格式的,需要后面转换成你想要的IQ格式。

具体的细节可以去查下TI的IQ manth库的文档

程序中有一句  _iq   SpeedRef   =_IQ(0.15),其中全局的Q格式是24,可不可以这样理解,speedref的十进制的数值就是0.15*2^24的值?

求助ti人,1.怎样理解IQ的计算?

               2,程序中的iq值可以看作是标幺值吗

Martin Yu:

回复 ZENGZHEN XING:

ZengZhen,

_IQ12toIQ(x)的含义是将IQ12格式的x转换成你软件系统中定义的IQ格式,

你查下你的 GLOBAL_Q是多少,如TI的很多例程中在

<IQmathLib.h> 定义:#define   GLOBAL_Q       24

因此针对你的语句就成x转换成IQ24格式的,即x左移12位。

 

赞(0)
未经允许不得转载:TI中文支持网 » F28335-Q格式问题
分享到: 更多 (0)