打印

关于单片机模块化编程

[复制链接]
8297|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
思宁|  楼主 | 2011-3-18 21:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
原野之狼| | 2011-3-18 22:23 | 只看该作者
设计模式
代码大全

使用特权

评论回复
板凳
思宁|  楼主 | 2011-3-18 22:31 | 只看该作者
:)谢谢LS朋友

使用特权

评论回复
地板
思宁|  楼主 | 2011-3-18 22:55 | 只看该作者
网上查到了,发现是讲面向对象,C++的
单片机编程不是用C语言吗?
o(︶︿︶)o 困惑

使用特权

评论回复
5
joyme| | 2011-3-19 10:41 | 只看该作者
所谓模块化编程是提高程序的可读性,可移植性,也不是非要多c文件的才叫模块化,重要是看你有多少模块要用,程序很简单的话,也没有必要写多个c文件。但用多个c文件,你就保证每个c文件都可以独立完成一个任务,最好不要跟主文件之外的文件有交叉调用。

简单举个例子,比如你要写一个定时器初始化函数,你需要填写计数值,这个值你可以用定义宏的方式(定义在头文件里),甚至寄存器的地址也用宏的方式定义,这样在下次你编程的时候,你不需要改c文件的代码,只需要改宏定义就可以直接使用你的定时器模块了。

再比如你通过IO口模拟I2C通讯,你在头文件里用宏定义好SDA和SCL的pin脚,在c里写基本的I2C位读写操作函数,字节读写函数,那么这个模块在任何单片机任何IO定义下都能用,只需要改动那个宏定义就可以了。

使用特权

评论回复
6
思宁|  楼主 | 2011-3-19 11:08 | 只看该作者
:)谢谢LS,但很少有详细讲解这方面的资料哦,  呵呵,自己不怎么会用

使用特权

评论回复
7
airwill| | 2011-3-19 13:01 | 只看该作者
我感觉:模块化编程在提高程序的可读性,可移植性的基础上. 最高目标能够达到代码的重用性.
这点在 PC 软件中大量采用, 不过在单片机领域里, 还是有些难度, 涉及到指令系统的种类多, 系统资源太小, 各自个性强, 差别太大等限制因素.

使用特权

评论回复
8
程序医人| | 2011-3-19 16:13 | 只看该作者
电子工业出版社有本很厚的书,名字忘了,好像是关于单片机C语言的,自己找找看。

使用特权

评论回复
9
月生1991| | 2011-3-19 19:02 | 只看该作者
10
XIANSir| | 2011-3-19 22:09 | 只看该作者
看书不如看代码来的直观高效。
我推荐楼主看一下周立功的SD卡驱动程序,一共8个文件,很好的模块化代码示例。而且简单易懂,学习SD卡顺便又理解了模块化的概念,可谓一举多得啊。

我记得该驱动的大概结构好像是:
sddriver.c             ————可以理解为本驱动的API层
sddriver.h
sdcmd.c                ————对所有SD卡操作的命令的封装
sdcmd.h
sdhal.c                  ————Hard Abstract Layer,硬件抽象层,直接对硬件操作的函数
sdhal.h

sdcrc.c                   ————CRC校验函数,对数据进行校验的函数,俺也不太懂
sdcrc.h

很好的模块化示例,强烈推荐楼主学习!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
月生1991 + 1
11
XIANSir| | 2011-3-19 22:10 | 只看该作者
不仅是模块化,分层结构也值得我们学习!

使用特权

评论回复
12
sysdriver| | 2011-3-24 13:32 | 只看该作者
操作系统

使用特权

评论回复
13
w522930954| | 2011-3-24 17:34 | 只看该作者
那个模块化得简单程序好好分析一下,读懂就全明白了

使用特权

评论回复
14
梅开二度| | 2011-3-24 23:35 | 只看该作者
真正的模块化很难做到的。不仅仅指一C一H组成的程序;
比如参数的传递,标志位的处理,等等;
原来农民讲习所写过一个,用消息队列来处理任务才能做到真正的模块化;

使用特权

评论回复
15
chenzichao1314| | 2011-5-5 09:48 | 只看该作者
恩 不错

使用特权

评论回复
16
whutzf2010| | 2011-5-5 14:22 | 只看该作者
9楼链接的很好!

使用特权

评论回复
17
tianbx| | 2012-12-30 09:00 | 只看该作者
很好的模块化示例,强烈推荐楼主学习!

使用特权

评论回复
18
1638574407| | 2012-12-30 17:06 | 只看该作者

使用特权

评论回复
19
NE5532| | 2012-12-30 17:37 | 只看该作者
把程序分开在几个C文件里就叫模块化了?这么简单?我咋没想到呢!

使用特权

评论回复
20
dqyubsh| | 2012-12-30 23:02 | 只看该作者
多读读开源的代码,老外的代码,国人的就免读。照着样子写程序,会进步神速。

使用特权

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

本版积分规则

个人签名:行李再重我自己搬 脚步再沉我移的开 心情再黑我看的淡

5

主题

344

帖子

3

粉丝