打印

怎么做到两个项目共用一个源文件

[复制链接]
1877|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在做项目开发时,经常可以把另一个项目的源代码拷贝过来,然后修改一下引脚的定义就可以直接使用了,这样有个问题,假如这是一个核心算法,以后要修改改进的时候,就需要修改两个项目的代码,虽然只要复制粘贴一下就可以了,但是当项目做多了之后就非常的不方便了,于是就想到把核心算法单独放在一个文件中,以后要使用的时候就把这个文件包含进去就可以了,问题就在这里,假如这个算法要使用单片机的某些引脚,而且不同的项目使用的引脚不一样,如何在不修改核心算法的文件的情况下,使项目在编译的时候能使用本项目定义的引脚?

相关帖子

沙发
海川先生| | 2013-12-31 08:32 | 只看该作者
引脚就用宏定义吧

使用特权

评论回复
板凳
y651503148| | 2013-12-31 08:55 | 只看该作者
引脚定义放在头文件,改动其实不大;如果有两三个案子用的引脚比较固定可以考虑用预编译指令进行区分。

使用特权

评论回复
地板
gzKangaroo|  楼主 | 2013-12-31 10:31 | 只看该作者
y651503148 发表于 2013-12-31 08:55
引脚定义放在头文件,改动其实不大;如果有两三个案子用的引脚比较固定可以考虑用预编译指令进行区分。 ...

难度就在怎么使用宏定义,前提编译项目1时不用去修改项目2的文件

使用特权

评论回复
5
gzKangaroo|  楼主 | 2013-12-31 10:38 | 只看该作者
海川先生 发表于 2013-12-31 08:32
引脚就用宏定义吧

能不能做到编译项目 1 的时候,只修改项目 1  的文件就实现

使用特权

评论回复
6
老鱼探戈| | 2013-12-31 10:50 | 只看该作者
把核心算法(c文件)做成obj文件,引脚定义放在头文件(.h)中即可。

使用特权

评论回复
7
gzKangaroo|  楼主 | 2014-1-1 00:30 | 只看该作者
老鱼探戈 发表于 2013-12-31 10:50
把核心算法(c文件)做成obj文件,引脚定义放在头文件(.h)中即可。

试了一下,好像不行,而且在使用过程中和条件编译没有什么差别

使用特权

评论回复
8
老鱼探戈| | 2014-1-1 21:05 | 只看该作者
gzKangaroo 发表于 2014-1-1 00:30
试了一下,好像不行,而且在使用过程中和条件编译没有什么差别

做成OBJ文件的目的就是方便使用,直接拷贝添加到工程就可以了,如果修改引脚定义,当然还是宏定义

使用特权

评论回复
9
tyw| | 2014-1-1 21:19 | 只看该作者

使用特权

评论回复
10
gzKangaroo|  楼主 | 2014-1-5 12:09 | 只看该作者
tyw 发表于 2014-1-1 21:19

程序做得好工整啊,谢谢

我想实现的是这样的:比如我把闪烁LED的函数做到一个文件中,命名为Led.c,Led.h,放在Led的文件夹中,现在有两个项目Project_1和Project_2,这个两个项目使用的 LED 控制引脚不一样,于是在Project_1和Project_2的项目文件夹中分别有 Pin_1.h和Pin_2.h 用来定义使用的引脚,Project_1和Project_2都分别#include "..\Led\Led.h",能不能做到在Project_1编译的时候调用的是Pin_1.h,Project_2编译的时候调用的是Pin_2.h?

使用特权

评论回复
11
tyw| | 2014-1-5 13:11 | 只看该作者
用前面几楼提供的办法, 在头文件里把I/O口定义为阿猫阿狗,再用宏定义使用阿猫还是阿狗.

C语言教程 谭浩强 第三版 209页 3.1M 超...
〓 新概念51单片机C语言教程 545页 136M 〓,t...

使用特权

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

本版积分规则

4

主题

16

帖子

0

粉丝