各位大神好,我在编译controlSUITE中的例程时,遇到一个Q格式的问题,我看到程序中的注释:
0.0000305是在Q15下定义的。
但程序确是这样定义的: _IQ(0.0000305)。
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
Martin Yu:
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
– 说明该程序中的IQ格式是IQ24的,即IQ(0.0000305)的实际值是0.0000305*16777216的。
各位大神好,我在编译controlSUITE中的例程时,遇到一个Q格式的问题,我看到程序中的注释:
0.0000305是在Q15下定义的。
但程序确是这样定义的: _IQ(0.0000305)。
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
xu zhang11:
回复 Martin Yu:
谢谢您的回复,程序中的数值是Q15格式的啊!而且选择0.0000305这么个小数的目的应该是将其转化为Q15格式之后使得0.0000305*2的15次方=0.9995约等于1,这是什么问题呢?
各位大神好,我在编译controlSUITE中的例程时,遇到一个Q格式的问题,我看到程序中的注释:
0.0000305是在Q15下定义的。
但程序确是这样定义的: _IQ(0.0000305)。
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
bad:
回复 xu zhang11:
提高精度吧
各位大神好,我在编译controlSUITE中的例程时,遇到一个Q格式的问题,我看到程序中的注释:
0.0000305是在Q15下定义的。
但程序确是这样定义的: _IQ(0.0000305)。
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
囧:
也就是以后如果用IQ(A)就代表IQ24(A),意思是指IQ24是一个GLOBE IQ数
各位大神好,我在编译controlSUITE中的例程时,遇到一个Q格式的问题,我看到程序中的注释:
0.0000305是在Q15下定义的。
但程序确是这样定义的: _IQ(0.0000305)。
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
kyle lo:
回复 囧:
是 GLOBAL_Q 嗎?
各位大神好,我在编译controlSUITE中的例程时,遇到一个Q格式的问题,我看到程序中的注释:
0.0000305是在Q15下定义的。
但程序确是这样定义的: _IQ(0.0000305)。
在IQmath中有:
#define _IQ(A) _IQ24(A)
#define _IQ24(A) (long) ((A) * 16777216.0L)
这是什么意思呢?非常感谢!!!
囧:
回复 kyle lo:
是的,其实就是一个默认Q格式的数据