写个delay.h文件* o) O+ E3 Q' P #ifndef DELAY_H #define DELAY_H void delay(void);9 i& O& |8 p4 U2 k: \ #endif3 m5 t1 L& U- [, s- Z 然后在main.c里面增加#include "delay.h" delay.c delay.h 和main.c要放在同一个目录下就可以了 |
谢谢仁兄@好长时间没玩,什么都忘了 @迷茫啊 |
要想让主函数调用其余。C文件的函数首先要包含他的头文件1 P4 f! D; D6 t' U 例如#include<xxxx.h>不可以是#include<xxxx.c> .h文件中包含的是这个对应的.c文件的 1、宏定义2、函数声明这两项。4 s( w6 T/ B$ _' E+ g( ? 其中宏定义有两个 1、条件编译 2、对其他的常量进行宏定义。 函数声明你应该是明白的。 我附一张图片,你看一下这是我的整体架构,希望对你有帮助 |
qiqiangguo 发表于 2013-11-26 22:21* d C/ B1 P$ J# n 此方法对初学者来讲,一般是不用这样的,我们都是会做一个include.h档,而且一般也不会用KEIL里写程序,一般都是Source Insight 里写程序,再写个makefile,调用KEIL来编译! |
QQ图片20131128182240.jpg (244.84 KB, 下载次数: 0)
天才小痴 发表于 2013-11-15 01:30+ @. X) y" c4 I$ [+ R 呵呵,谢谢。这种做法也行,好像实际应用不大被提倡~~ |
kaizhu1986 发表于 2013-11-8 15:28 LAYOUT不好玩呀,可是单片机这东西似乎需要足够的时间和精力持之以恒的来学习的,嗨 有空的时候玩玩,隔了段时间又差不多忘记完了。至于这个模块化的问题,查了点资料,感觉最靠谱的还是每个.C的子文件再建一个.H的头文件对变量和接口参数进行说明这种做法是最被推荐的,因为现在一下子在电脑里找不到这个实验的文件了,所以无法附上@等啥时候找到再贴出来大家指点,谢! |
.c档是不用#include"xx.c"的声明的,但在主函数里你要作 extern void dealy(void); extern void left3(void); 的声明,全局函数,这样主函数才能调用到它! |
主含数前声明"extern " |
包含进来. |
楼主跟我一样,做LYOUT,学单片机,我也不太懂,你我觉得multi c file.c、delay.c 、left3.c这几个相当于库里面的器件,你在MAIN函数前有INCLUDE已经把他们调用进来了,至于要不要添加到source.Group里,你可以试一下,顺便告诉我下,谢谢楼主,多分享些心得,我们一起进步 |
关于我们|手机版|EDA365 ( 粤ICP备18020198号 )
GMT+8, 2025-2-2 06:47 , Processed in 0.061017 second(s), 36 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050