智能车制作

标题: 飞思卡尔的反三角函数 [打印本页]

作者: happyzn75    时间: 2013-8-6 09:54
标题: 飞思卡尔的反三角函数
正在用指南针,需要把三轴xyz合并到一起转化成角度,用到C语言库函数atan2,结果出现下列问题:Link Error   : L1822: Symbol _FSFLOAT in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\main.c.o is undefined

Link Error   : L1822: Symbol _FNEG in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : L1822: Symbol frexp in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : L1822: Symbol ldexp in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : L1822: Symbol _FCMP in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : L1822: Symbol _FADD in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\main.c.o is undefined

Link Error   : L1822: Symbol _FMUL in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\main.c.o is undefined

Link Error   : L1822: Symbol _FSTRUNC in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : L1822: Symbol _FSUB in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : L1822: Symbol _FDIV in file C:\Users\lenovo\Desktop\Ö¸ÄÏÕë\Project\Project_Data\Standard\ObjectCode\connnn.c.o is undefined

Link Error   : Link failed


作者: happyzn75    时间: 2013-8-6 09:55
程序如下: x=BUF[0] << 8 | BUF[1]; //Combine MSB and LSB of X Data output register
    z=BUF[2] << 8 | BUF[3]; //Combine MSB and LSB of Z Data output register
    y=BUF[4] << 8 | BUF[5]; //Combine MSB and LSB of Y Data output register
   
   angle=atan2((double)y,(double)x) * (180 / 3.14159265) + 180; // angle in degrees
    angle*=10;


作者: 理工小别    时间: 2013-8-6 10:10
math.h
作者: happyzn75    时间: 2013-8-7 08:57
理工小别 发表于 2013-8-6 10:10
math.h

已经包含math.h了
作者: 理工小别    时间: 2013-8-7 09:45
angle=atan2((double)y,(double)x) * (180 / 3.14159265) + 180;

antan2() 你缺一个扩回括号angle=atan2((double)y,(double)x) * (180 / 3.14159265) )+ 180;
作者: happyzn75    时间: 2013-8-8 08:55
理工小别 发表于 2013-8-7 09:45
angle=atan2((double)y,(double)x) * (180 / 3.14159265) + 180;

antan2() 你缺一个扩回括号angle=atan2 ...

已经明白了,像这种控制类cpu都不支持像反三角函数这样的东西,得是dsp才支持。

作者: 理工小别    时间: 2013-8-8 09:15
happyzn75 发表于 2013-8-8 08:55
已经明白了,像这种控制类cpu都不支持像反三角函数这样的东西,得是dsp才支持。

不能这么说 其实反函数在VCC++里也是一个库函数 你可以去查库函数 然后把它全部打出来就可以了
作者: happyzn75    时间: 2013-8-8 18:57
理工小别 发表于 2013-8-8 09:15
不能这么说 其实反函数在VCC++里也是一个库函数 你可以去查库函数 然后把它全部打出来就可以了

打出来也不行,只能近似代替了

作者: 理工小别    时间: 2013-8-8 19:04
happyzn75 发表于 2013-8-8 18:57
打出来也不行,只能近似代替了

晕 都是近似代替的

作者: 胡宏宇    时间: 2014-7-18 23:39
我也遇到这个问题了.请问你是怎么解决的?用近似的吗?近似怎么写的?

作者: 空有一人    时间: 2014-7-26 09:33
建工程时没有选择float然后某个表达式里将整型与float型同时参与运算了或者对float进行了强制转换!重建一次工程,选择float型就好了·······【我复制来的。。】
作者: pang576101312    时间: 2015-2-2 10:50
改成float工程就好了,有直接改现有工程的,或者重建工程移植




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2