打印

函数调用问题

[复制链接]
1210|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
victor3l|  楼主 | 2012-6-27 09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我要处理6路AD的数据,要分别写6个读AD的函数,6个滤波的函数,6个稳定的函数,我觉得这样代码太冗余了,其中读AD的函数中只有片选和数据准备好引脚不一样,其他的都一样,想滤波函数和稳定判断函数内容就完全一样了,只是函数名字不一样,他们只是调用读ad函数,进行相关处理。我第一次是致谢一个滤波函数,然后分别调用6个读AD函数是,得到的数据不正确。滤波后的6个值加起来(单片机完成)不等于单个滤波后的值相加(自己算的)。问别人原因是,他说是交叉调用导致出错了,让我写6个滤波函数对应6个读AD的函数,这样倒是解决了问题,但是现在要在滤波后加上稳定判断,这里要加6个稳定判断函数吗?
请问这种情况有什么好的组织结构啊?

相关帖子

沙发
原野之狼| | 2012-6-27 09:52 | 只看该作者
写成函数才能更好的重用代码 更好的组织结构

使用特权

评论回复
板凳
ayb_ice| | 2012-6-27 10:41 | 只看该作者
传递参数嘛

使用特权

评论回复
地板
coody| | 2012-6-27 10:43 | 只看该作者
函数,函数,调用

使用特权

评论回复
5
wukunshan| | 2012-6-27 11:15 | 只看该作者
这样的代码,效率太低了。你应该这样做:1.写一个读AD的函数,函数里不要有片选和数据准备好引脚;2.写一个滤波稳定函数,这个函数至少带一个形参,这个形参就是用来选择1-6路AD的片选和数据准备好引脚,然后调用读AD函数,就得到每一路数据了。3.写一个数据处理函数,使用for语句循环6次调用滤波稳定函数,得到1-6路的数据,然后相加等处理。
在main 函数里只调用数据处理函数就可以了,代码是不是精简了很多呀?

使用特权

评论回复
6
victor3l|  楼主 | 2012-6-29 15:08 | 只看该作者
5# wukunshan

谢谢老师的指点。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

308

帖子

5

粉丝