×

QM:以现代方式对Arduino进行编程

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-15

郝埃连

分享资料个

描述

质量管理?

QM 是一个图形状态机建模工具,它使用事件驱动框架 QP!

因此,QP 可以很容易地适用于 Windows、Mac、Linux 和 ARM 微控制器。在本教程中,我们将在 Arduino 上运行这个强大的工具。

安装

首先,下载 QP-nano for arduino 和 QM 建模工具:

https://sourceforge.net/projects/qpc/files/QP-nano_Arduino/

https://sourceforge.net/projects/qpc/files/QM/

由于您下载了 QP nano,请将其安装在您的 Arduino 速写本位置,通常为:C:\Users\\Documents\Arduino。

运行第一个示例

在 Arduino IDE 上打开 blinky 示例:

 
pYYBAGNoeQ2ACWpYAAEJDNtxV0U534.png
 

此外,由于您安装了 QM 工具,open.qm 文件位于 C:\Users\\Documents\Arduino\libraries\qpn_avr\examples\blinky

 
poYBAGNoeRCAKYP7AAKDTMETsMg986.png
 

在这里,您可以看到以 UML 表示法表示的项目状态机,包含状态、转换和动作组件。

 

 
pYYBAGNoeRKANO8eAAA69OlrKy4218.png
 

每个组件都有自己的操作字段,您可以在其中插入代码来执行功能。

 
pYYBAGNoeRaAUeKZAAA6CpXFweg951.png
 

要生成状态机项目的代码,您需要按照示例在 QM 中创建 a.ino 文件。

 
pYYBAGNoeRiATw0BAAGSxc7Pmgc136.png
 

在状态和转换中插入所有操作后,在 Arduino IDE 上生成代码和 open.ino 文件。

关于一些代码的解释:

  • QActive_armX((QActive *)me, 0U, BSP_TICKS_PER_SEC/2U, BSP_TICKS_PER_SEC/2U) - 2秒后发送超时事件的定时器。
  • Q_TRAN(&Blinky_off) - 转换到 OFF 状态。
  • Q_TRAN(&Blinky_on) - 转换到 ON 状态。
  • Q_ENTRY_SIG - 进入状态以执行操作时生成的事件
  • Q_TIMEOUT_SIG - TIMER 生成的事件。

现在,将您的代码上传到 arduino 板,然后查看没有意大利面条代码的程序运行。

 
 

为了提高您对 QP 框架和事件驱动编程的知识,请阅读最流行的关于嵌入式系统的 UML 状态图和事件驱动编程的书籍。

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !