微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

小编推荐:单片机程序到底应该怎么写?

2020-09-02 14:11 来源:星球创作者-程序小白 编辑:电源网

其实聊这个话题多多少少还是有点心虚的,因为到现在我也只是摸索到了门口,但为啥还是想聊这个话题呢? 可能是因为热爱。。。也可能是不甘心。。。所以一路从入门到入门到再入门。。。 拥有八年单片机软件开发的经验的我想到这个问题的时候,还是会心慌,说实话我不知道该怎么写,我只会那个最简单的套路。。。

裸奔时代:查过专业的资料以后,我知道了一个名词叫前后台程序,记不清到底谁算前台谁算后台 暂且理解为前台有个中断程序,后台有个超级循环在不停工作:

后来觉得这样搞不行,现在都开始流行RTOS了,你要不上个RTOS,面试你都不好意思和别人say hello ,于是,学习freeRTOS 跑了个例程放弃了 ,学习UCOS,因为不免费放弃了,学习RTthread,写了个简单的面板显示的项目,放弃了。放弃不代表他们不够优秀,而是我不够优秀,写着写着又回到了我以前的老路,多多少少是有点 成长的,聊以自慰吧。 应用RTOS我大概是这样写的:

后来写着写着发现又回到了裸机的套路,蓝瘦啊,但是还是学到了一点,就是程序其实是有控制权的,当你裸奔的时候,程序的控制权就在你的手里,因为这个时候整个程序就只有应用程序(你自己写的部分) 真正移植RTOS以后,发现需要移植系统的很多代码,这个时候,程序就分为应用部分和系统部分,而控制权是属于系统所有的, 只是再运行过程中,需要某个应用程序运行的时候,系统把控制权下放给你,等你运行完了,再把控制权交给系统,这里交出是必须的 大概分为主动上交和被抢走,主动上交就是相当于执行系统提供的微信截图_20200902141108,我完事了,要睡了,这个时候控制权回归系统。 另一种情况,我就是不交,哪怕没事儿我也要占着,这时候系统会根据计算你已经获得控制权的时间,如果超过了我给你规定的时候,就强行 给你关灯盖被子。

这是两种不同的方式的本质区别,这里用方式而没有用构架二字,是因为这并不是我想要获得的知识。 我想要的知道这个单片机程序到底该怎么写?你引入了系统他不会告诉你应该怎么写。

传统我们应用的构架我称为是顺序式程序构架,这个玩意儿基本不用教,看一遍大家都会了。 那么另一种更加优美的构架方式是什么呢?或许有人会讲当然是面向对象了,但是面向对象只是一种思想,并不是一种程序构架,其实也是 说对了一半,我想要获得的是那种基于面向对象的思想而实现程序构架。

假如你搞过 安卓 C# 等等一系列开发应用程序的软件以后,你就知道了另一种构架其实是:事件驱动型构架。

目前我只知道这两种了,你要知道第三种,请一定要告诉我,后面会边学边分享给大家这种东西到底怎么在单片机上玩。 当你掌握了这种构架的核心,变成你自己的东西,你就再也不想回到那个通篇if else的结构当中了。


=========================================================================

借此机会,给大家介绍下电子星球这个APP,其实电子星球是电源网精心打造一所属于工程师的终身学习的全民大学。通过线上下线结合的学习方式,把分散在各个地方的行业专家、民间达人的知识挖掘、提纯、分享出来。为工程师提供“省时间的高效知识服务”!广大工程师们还等什么,还不加入电子星球的阵营来,就差你啦?

想了解此文章的更多内容,请扫描下方二维码下载电子星球APP,持续关注星球频道


声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006