C语言keil模块化 编程 需要注意哪些??
这个里边的delay 延时函数!有问题……还有!!如果去掉里边的数据就不会出现错误,但是会有警告……仿真也可以!!但是不能不调用延时呀……晕 展开
模块化编程是指将一个庞大的程序划分为若干个功能独立的模块,对各个模块进行独立开发,然后再将这些模块统一合并为一个完整的程序。这是C语言面向过程的编程方法,可以缩短开发周期,提高程序的可读性和可维护性。
在单片机程序里,程序比较小或者功能比较简单的时候,我们不需要采用模块化编程,但是,当程序功能复杂、涉及的资源较多的时候,模块化编程就能体现它的优越性了。如前面我们写过的HT1380驱动程序、独立按键扫描程序和12864程序,每一个程序都是只用一个源文件编写就能完成,但是,当您制作一个12864液晶日历的时候,需要用到HT1380驱动程序、独立按键扫描程序和12864显示程序,如果把这三个程序全部集中在一个源文件里,将导致主体程序臃肿且杂乱,这样做并非不可取,只是降低了程序可读性、可维护性和代码的重用率。如果把这三个程序当做三个独立的模块放到你的主体工程进行模块化编程,效果就不一样了。
实际上,模块化编程就是模块合并的过程,就是建立每个模块的头文件和源文件并将其加入到主体程序的过程。主体程序调用模块的函数是通过包含模块的头文件来实现,模块的头文件和源文件是模块密不可分的两个部分,缺一不可。所以,模块化编程必须提供每个模块的头文件和源文件。下面我们以一个简单的例子(主体程序实现指示灯闪烁,延时模块实现延时功能)来演示模块化编程。
有些程序员为了省事,只建立模块的源文件,不建立头文件,在主体工程里直接将源文件包含进来,建议大家不要采取这样的做法,这是一种不符合C语言标准的做法,是一种冒险方法。只包含一个源文件可能没事,同时包含多个源文件的时候问题就会出现。
把错误提示发上来,最好把文件传上来
我这有个c8051使用12864模块化的例子,你可以参考对比下
你在看看,麻烦了
可能是你延时函数声明或者定义有问题,还有就是延时函数必须定义成extern,你把函数的声明和定义发上来
如果你想调整 你就只能把延时函数放在liu.c 文件下才可以
在delay.h 文件中 我已经声明过延时函数了!!而且在liu.c中包含了delay.h
是啊 Delay_1ms() 括号里面必须是没有任何值的,因为它不会把里面的数值赋值到 delay.h里
意思就是说 我只是让你运行一下 但我不能改变里面的数值
除非你把延时函数放在一起
好了,麻烦了
错误在于你的延时函数,你应该还要把延时函数的定义和声明贴出来才能看,C文件和H文件的内容