long _IQint( _iq A)和_iq _IQfrac( _iq A) ,当A为负数时,得到的结果和手册讲得不对,如下的代码,请问是我下面写的程序有问题吗
_iq Y0 = _IQ(2.3456);
_iq Y1 = _IQ(-2.3456);
long Y0int, Y1int;
_iq Y0frac, Y1frac;
Y0int = _IQint(Y0); // Y0int = 2
Y1int = _IQint(Y1); // Y1int = -2
Y0frac = _IQfrac(Y0); // Y0frac = 0.3456
Y1frac = _IQfrac(Y1); // Y1frac = -0.3456
GUI_DispFloatFix (Y0int,9,4);GUI_DispString("\n");//显示为0002.000
GUI_DispFloatFix (Y1int,9,4);GUI_DispString("\n");//显示为-003.000
GUI_DispFloatFix (_IQtoF(Y0frac),9,4);GUI_DispString("\n");//显示为0000.3456
GUI_DispFloatFix (_IQtoF(Y1frac),9,4);GUI_DispString("\n");//显示为0000.6544
需要看你调用函数的说明,这样看不出问题。负数是否有什么特别要求?
回复 4楼Study_Stellaris 的帖子
用MCU是stm32f103vet6,跑的是手册上给的一个例子,我的显示部分我都测试过的,没有问题
回复 4楼Study_Stellaris 的帖子
我跑了一下,你给的那ti链接上的例子,也同样遇到他的问题
回复 板凳zhaojun_xf 的帖子
我试的这个例子是手册上讲的,可是我得到的结果和手册上讲的不一样
回复 5楼hytz845 的帖子
你看的是什么手册,能否分享一下
STM32F103 没有 FPU ,会不会在用 IQmath 之前要进行一些配置,我还没有用过 IQmath.
[ 本帖最后由 Study_Stellaris 于 2013-7-30 09:06 编辑 ]
这个是C2000对IQmath的文档,M3也有,写的差不多,IQmath具体文件可以到ti官网下载
回复 8楼Study_Stellaris 的帖子
看你好像在学TI的M3,这个是不是不好学啊
回复 10楼hytz845 的帖子
我现在在用 STM32F103 做项目,之前用过很长一段时间 TI M3 .
感觉 TI 的 M3 比 STM32 好用.