« 上一篇下一篇 »

单片机编程——模块化

一直以来都觉得自己写程序方式(习惯)很不好,一个稍微大点的程序,一写下来,几百行代码,这使得无论是编写还是查错,都带来了极大的麻烦,前不久写的频率计程序,就是这样,我想找个函数,得不停的下拉来找它的位置,光是找个地方就让人头晕了,更别说编写代码了,其实我早就意识到这种方法的局限性,也一直就想用头文件来分开写的方式,但是就一直没能够实现,其实很简单的一个东西,就是有点夸大它的难度了,另外就是拖延了,这该死的拖延症,很多时候都是这样,想学的东西拖了几百年都还没去碰,等到要用了又在那里干着急,我都对自己无语了,闲话少说,还是进入正题吧!

为了节省时间,并直接明了,下面我用图片来说明:

这里以点亮小灯为例,我们用到3个c文件,main.c/delay.c/led_on.c,两个h文件,delay.h/led_on.h,这里分模块化写就是在主程序文件中只进行函数的调用,当然,这只是一个小程序,而其他的函数则由分别的文件来写,如下图所示,注意看软件上面界面指示具体的文件:依次是主程序文件、delay函数c文件、delay函数头文件、点灯函数c文件、点灯函数头文件。记得要在工程中把c文件全部添加进去。h文件只在程序中做包含即可。

注意:这个c文件里面只包含了"delay.h",下面我们来看它的头文件写了什么:

这里用到了条件编译,条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译。

然后在这个头文件里面,我们声明了delay函数,包含了一个头文件,当然这个是根据实际情况来包含的。下面的类同

本文参照其他博文写成,链接如下:http://www.51hei.com/mcu/1932.html,非常感谢原文作者。


OK,正文完。