智能车制作

标题: /*求助帖*/代码在codewarriors5.1环境中编译出现错误求指明 [打印本页]

作者: fokki    时间: 2015-4-3 21:29
标题: /*求助帖*/代码在codewarriors5.1环境中编译出现错误求指明
[attach]75805[/attach]写到了互补滤波的部分。原理利用的是将陀螺仪偏角积分后与加速度计数据互补得到最终结果。
但是编码到这里就是过不去啊!!
开始时候说是下面代码出现错误【missing “}”】,但是互补滤波函数(见下)的“}”根本没有问题啊!!!
    void hubu(void)
    {
            r=gyro/e*d;     
            s=r-b;         
            t=s*a;         
            u=t/c;         
            tlan=tlan+u;   
            rr=0.95*(rr+tlan)+0.05*Y;
    }

后来将互补滤波函数中的参数设置为全局变量,再编译错误类型就变为上图所示,我已经检查了好几遍好几遍,真的是找不到任何错误才决定向大家求助的。

/*我知道肯定是自己代码写的有问题,明明看到大家有xs128芯片带动小车飙到3m/s。话唠了,忽略这一行吧。。*/

不知道大家之前有没有遇到过这样的问题,如果有的话还希望有热心的朋友能帮忙看一下代码的哪个位置出现了怎样的问题,如果能有大家踊跃发言实在是再好不过。

//今天是被这段main.c折腾到痛不欲生的第二天。。




作者: DEATHRACE    时间: 2015-4-3 21:29
第21 22行define定义的宏去掉“;”。
作者: 青谷子    时间: 2015-4-3 22:19
你编写的函数不是很规范,虽然乘除属于同一阶,但是最好用括号。看一下你建立工程中选取了float型没有,没有选的话也是编译不过的
作者: fokki    时间: 2015-4-4 13:11
青谷子 发表于 2015-4-3 22:19
你编写的函数不是很规范,虽然乘除属于同一阶,但是最好用括号。看一下你建立工程中选取了float型没有,没有 ...

创建工程的时候选好了floar类型,加上括号再编译仍然是这两个错误。目前为止仍然不清楚究竟是哪里出了问题。
这里编译出现问题不会是算法的问题,应该是C编写过程不规范导致的问题。
还是静下心来再检查一遍好了。
感谢你的回复。

作者: hujianhao    时间: 2015-4-7 14:22
问题解决没

作者: 吴朋    时间: 2015-4-7 18:09
宏定义是不要分号的。。。。。。。。
作者: fokki    时间: 2015-4-9 10:15
吴朋 发表于 2015-4-7 18:09
宏定义是不要分号的。。。。。。。。

suo...阴沟里面翻船了。。

作者: 夏日之恋    时间: 2015-4-15 21:13
同学你们是怎么解决的 能不能告诉我们一下  还有那个滤波的参数为什么有设置0.95  是已经调试好的吗

作者: fokki    时间: 2015-4-18 09:36
夏日之恋 发表于 2015-4-15 21:13
同学你们是怎么解决的 能不能告诉我们一下  还有那个滤波的参数为什么有设置0.95  是已经调试好的吗

问题已经解决了。不过是换了代码之后解决的。现在已经可以融合出来波形,虽然还有很大进步空间,但是怎么说现在有希望了。
另外,0.95不是调试好的参数。当时是从网上找资料得到的互补滤波常数为0.05和0.95。这个好像还需要继续调试才能确定那个数值与你的车子最吻合。






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