程序小白
认证:优质创作者
所在专题目录 查看专题
分享一个基于QP(事件驱动型程序构架)实现的飞行射击小游戏
【第一篇】单片机程序到底应该怎么写?
【第二篇】大话单片机软件构架
【第三篇】嵌入式系统的事件驱动型编程技术第二版(书籍分享)
【第四篇】QP量子编程之入门体验
【第五篇】从(状态图)到(代码)生成,一切交给软件QM
作者动态 更多
小小调度器——开局default,优雅总藏于细节之中
04-02 09:23
小小调度器——调度器核心的纯C实现
04-01 14:09
小小调度器——原来C代码还能这么写,原作者没少挨打吧!
03-27 15:42
解析由系统库引发的hardfault血案(RT-Thread+ESP32)
2023-07-17 16:04
TINA瞬时现象仿真分析——运放缓冲器振铃
2023-02-28 11:38

【第一篇】单片机程序到底应该怎么写?

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

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

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

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

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

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

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

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

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 9
收藏 10
关注 117
成为作者 赚取收益
全部留言
0/200
  • 星球居民-Kk82mp7b 2020-12-01 11:58
    老赵学生妹他中午童颜巨乳吃太多强奸,下午性虐就援交一直美女少妇
    回复
  • 乞力马扎罗的雪 2020-08-30 01:47
    我也有过和你类似的想法。事件驱动型的架构应该需要较多的内存。
    回复 2条回复
  • chaochao1545 2020-08-28 21:20
    赞一个
    回复 1条回复