程序小白
认证:优质创作者
所在专题目录 查看专题
【第一篇】单片机程序到底应该怎么写?
【第二篇】大话单片机软件构架
【第三篇】嵌入式系统的事件驱动型编程技术第二版(书籍分享)
【第四篇】QP量子编程之入门体验
【第五篇】从(状态图)到(代码)生成,一切交给软件QM
【第六篇】基于QP开发应用程序的套路分享
作者动态 更多
小小调度器——开局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

【第五篇】从(状态图)到(代码)生成,一切交给软件QM

      程序其实可以这么玩,这篇分享不会告诉你QP怎么安装,状态机的原理,QM的教程,只是给大家演示如何应用QP量子编程完成一个定时点灯的小程序,首先打开QM软件,然后创建一个空的工程,这是一个轻量级的小软件,远没有你用的IDE工具那么复杂,这是一个状态机建模的工具,如下图:

单击OK以后,那么一个空的工程就出现了,如下图:

左边的工作区多了一个QPC的目录,有个括号写着locked,意思是这个是以QPC为框架构架的状态图,locked意思是不能修改,可以理解为MDK创建工程会生成很多基础文件,给工程用,不能改的,接下来定义活动对象构建状态图了 ,如下:

在工作区model上右击创建package  class statemachine(SM)等等构件,然后双击SM进入画状态图的界面,如下 :

画图工具在右侧面板,如下图:

应用画图工具,可以再状态图中绘制状态机,如下:

这里我们要点灯所以,安装开灯状态,关灯状态绘制这两个状态,如下图:

添加了一些触发事件,例如TIMEOUT 到时间切换状态,接下来创建一个.C文件,假如QP框架启动文件,注意$开头的部分的代码,这部分会被QM工具进行重写,类似我们的宏定义,如下图:

单击tools里面的generate code 进行代码生成,如下图:

这时候我们用文本编辑软件重新打开这个.c文件,会发现$的部分全部被展开了,以我们绘制的状态机为模板的方式,如下图:

这时候我们的编码进完成了,接下来我们可以生成windows程序版本验证我们的点灯程序,如下操作,打开我们的CMD,怎么打开CMD就不讲了哈,切换到我们的工程目录,如下:

               这是我们的工程目录,如下有我们生成的.c文件,如下图:

cmd中执行如下命令:

这个时候进入工作目录,会看到.exe可执行程序,如下图:

双击运行blinky.exe,运行如下图:

      这时候会有人问为啥点个灯这么麻烦,其实点灯没人会这么点,但是当你用点灯的方式来做嵌入式很多复杂的项目时候,随着需求的增加,控制的复杂化,一个脑袋会有两个大,这时候,假如你能想起来以前见过一个小白,写了一篇关于quantum leaps量子编程的玩意儿,并且想要尝试用它来他来重建你的软件构架,那这篇分享也就值了~!!!

                                                                                                          再见~!

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 10
收藏 8
关注 117
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧