|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
小弟初学单片机(89SC52)不久,因为一直看资料都是一个.c的程序在那里编译仿真实验。今天突然想了解下多个.c是如何在一个主程序里面执行的,感觉上是像原理图的子程序一样的模式,也看到很多网上说的,都是差不多的回答,但是没看到具体的实例,有点云里雾里。自己就整了附件所示的小程序做实验,实验倒是成功了(仿真功能实现,最多叫可能成功{:soso_e127:} ),但不知道在规范程度和流程上面以及实际运用是否合理。, _8 U; R# o9 s$ n6 ?' O
4 b/ H( X, o A( c# L7 a 先介绍下附件小程序吧~~主程序是multi c file.c, 另两个.c程序delay.c负责延时,left.c负责将P0口接的LED从左至右流水三圈(很弱智的整发,但是感觉能够证明此次的设想)。现在有以下5个问题,希望知道的朋友能够帮忙解释下,先谢过!" `+ \. |. S: P6 ?/ R
, [7 K/ g, k! U+ L5 ~ 1.附件的这种C架构是否正确合理?即一个包含MAIN()的.c主文件,实现主体功能,通过调用其余模块.c文件实现最终效果?
. F2 ?; [% f5 [9 S 2.真正的项目是否也是这样?如果不是,那么它是如何处理的呢?最好谁能够有个小的项目文件帖出来让大家参考以下就棒了,哈哈~~(一直LAYOUT,对这块确实很无知,木有办法呀)7 s u! {( {: [. \. W9 @6 a
3.其中的两个模块.c文件是如何添加的?先在一个工程文件(XX.uv2)中分别建multi c file.c、delay.c 、left3.c,然后分别添加到source.Group,再编译?我这样整好像不行报错,后来调整后稀里糊涂的就编译成功了{:soso_e144:} 谁能详细讲解一下步骤呀;% U2 k$ k8 Q4 l+ B& a: w
4.在主函数MAIN中#include<XX.c>调用其它的c文件是否正确?是否合规范?虽说仿真验证OK,但考虑到程序过于简单,担心程序一旦大起来不规范的问题就会凸显出来;3 y2 V, G; I- h* b8 Z- x+ I! J
5.其中每个单独的.c程序似乎相对都很独立,当然像返回值之类的除外。例如此例中主文件main.c中已宏定义LED为P0,但在left3.c中还必须重新宏定义才能正常使用,包括其它uint、uchar同理,实际也是这样?5 ?" g# E. p" J8 w z
/ p- J8 V( k: k' K, _; g 可能说得有些啰嗦,不大清楚,欢迎跟帖~~~ |
|