搜索
bottom↓
回复: 7

【请教】请教傻孩子,关于你的工程模版的使用。。

[复制链接]

出0入0汤圆

发表于 2009-5-8 15:12:52 | 显示全部楼层 |阅读模式
刚开了《深入浅出》的最后一章,感觉最后一章写的很简单,很多东西都不是很明白。
想让版主发表个关于工程模版的主题,讲解讲解。
如果我要在主函数中调用一个我自己写的键盘扫描和1602的驱动函数,这两个函数应该怎么被包含在工程中,是属于拿一层的?是EX_Support.h里么?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入296汤圆

发表于 2009-5-8 16:25:58 | 显示全部楼层
可以认为键盘应该放在EX_support.c中,而1602应该写一个自己的驱动函数库,并将这个
驱动函数库通过LIB_Config.h来配置。主函数中,通过包含LIB_Config.h和PF_Config.h
来实现对整个系统的包含。
详细内容,我在《深入浅出AVR单片机》精要中有了较为详细的解释。您可以参考这个帖子:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3239709&bbs_page_no=1&bbs_id=3039

实际上,工程包含的方法最重要的是自己体会,而且没有统一的方法,里面往往有很多自己的
理解和习惯,因此,多做项目多思考,多体会才是根本解决方法。

出0入0汤圆

 楼主| 发表于 2009-5-8 19:31:00 | 显示全部楼层
在问一下 在书中有PF_Config.h  <-  LIB_Config.h  <- HD_Support.h   而在HD_Support.c中 又同时包含了
# include "PF_Config.h"
# include "HD_Support.h"
这两个可以省略掉一个HD_Support.h么?  我觉得有点重复啊。


还有就是keyboard.h这个是不是理论上应该在LIB_Config.h中被包含。
LIB_Config.h应该是除了单片机之外的其他外设的库函数吧?也就是说 单片机的资源应该在EX_Support.h。而片外资源是在LIB_Config.h中,但是它们的初始都在HD_Support.c中。

我这样认为正确么?

出0入296汤圆

发表于 2009-5-8 23:43:04 | 显示全部楼层
最好不要省略。

如果KeyBoard.h是一个通用库,可以放在LIB_Config.h里面,如果不是一个通用库,而与硬件
相关度很高,就不能放在LIB_config.h里面。

出0入0汤圆

 楼主| 发表于 2009-5-9 13:13:58 | 显示全部楼层
呵呵  谢谢傻孩子的帮助 昨天熬到2点终于想明白了

出0入0汤圆

发表于 2010-6-29 00:33:30 | 显示全部楼层
傻孩子
2楼的:

出0入0汤圆

发表于 2010-6-29 00:35:20 | 显示全部楼层
LIB_Config.h应该是除了单片机之外的其他外设的库函数吧?也就是说 单片机的资源应该在EX_Support.h。而片外资源是在LIB_Config.h中,但是它们的初始都在HD_Support.c中。
-------------------------------------------------
这一句话理解的正确吗? 我也是这样理解的,不过我觉得对于例如1602的初始化最好不要放到HD_Support.c中

出0入296汤圆

发表于 2010-6-29 10:06:46 | 显示全部楼层
根据老的编码规范,LCD的初始化应该放在EX_Support.c里面,或者LIB_Init()里面。

以前,我刚刚开始积攒库文件,因此,所有积攒的库都是在LIB_Config.h里面进行配置,如果牵涉到较为
复杂的配置,还会在LIB_Config.c里面建立一个专门的函数进行初始化。

最终,LIB_Init()这个函数会在EX_Support.c里面被调用(或者在System_Init()里面专门调用)。不过
这种分类方式现在看来并不妥当。但是,对于刚刚开始进行模块划分的人来说,还是有一定借鉴意义的。
-------------------------------------------------------

HD_Support.c专门负责AVR单片机自身外设的初始化,以及中断处理程序的设置。
EX_Support.c专门负责与AVR单片机外设相关的一些系统服务,或者处理。

简单说HD_Support.c实际上对应现在的Driver文件夹
EX_Support.c实际上大体对应现在的BSP + HAL + Service文件夹。
LIB_Config里面配置的那些库实际上大体对应现在Component和Service。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 17:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表