找回密码
 注册
关于网站域名变更的通知
查看: 333|回复: 2
打印 上一主题 下一主题

关于单片机代码架构分层

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-25 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于单片机代码架构分层
8 T3 n9 A: Z7 h  `% F; j% ~0 c1 e$ \, d# x! M! L3 ?

最近看了一个大神吴坚鸿的文章,他的软件架构写得还是不错的,但是代码风格一般,全局变量满天飞,但开发出来的产品稳定,性能也好。不管怎么说,在企业里,老板只追求结果,不追求过程,即使代码写得再不好,能实现功能就不错了。在这里,我借鉴他的“”三区一线理论“做下分析”。

[cpp] view plain copy print?

#include

void init();

void initial();

void delay_l(unsigned int ul);

void APK();

void main()

{

/* 注释一:

* 专门用来初始化单片机自己的寄存器以及个别外围要求响应速度快的输出设备,

* 防止刚上电之后,由于输出IO口电平状态不确定而导致外围设备误动作,

* 比如继电器的误动作等等。

*/

init();

/* 注释二:

* 延时时间一般是0.3秒到2秒之间,等待外围芯片和模块上电稳定。

* 比如液晶模块,AT24C02存储芯片,DS1302时钟芯片,

* 这类芯片有个特点,一般都是跟单片机进行串口或并口通讯的,

* 并且不要求上电立即处理的。

*/

delay_l(100);

/* 注释三:

* 专门用来初始化不要求上电立即处理的外围芯片和模块.

* 比如液晶模块,AT24C02存储芯片,DS1302时钟芯片。

*/

initial();

/* 注释四:

* while(1){}主函数循环区属于鸿哥三区一线理论的第三区,

* 专门用来编写被循环扫描到的非中断应用程序

*/

while(1)

{

APK();

}

}

: r! f: q+ `+ {3 S9 D* c* B* R: U

该用户从未签到

2#
发表于 2019-2-25 11:31 | 只看该作者
不错,谢谢楼主分享

该用户从未签到

3#
发表于 2019-2-25 18:06 | 只看该作者
了解下大神的想法
' B) b9 J' G. d% F( _7 ~6 C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 03:07 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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