当前位置:网站首页 >> 产品/行业资讯 >>

浅谈单片机划线的状态机

说到微控制器编程,我们必须谈论状态机。

作为软件编程的主要框架,状态机已经以多种语言使用,包括C语言。

在清晰有效的程序中,必须有一个状态机。

出现。

灵活的应用程序状态机不仅使程序更高效,而且具有良好的可读性和可伸缩性。

状态无处不在,状态中有状态,只要您掌握了这种思维并将其养成编程习惯,我相信您会受益匪浅。

状态机可以归纳为4个元素,即当前状态,条件,动作和第二状态。

这种归纳主要是基于对状态机内部因果关系的考虑。

“当前状态”指的是“当前状态”。

和“条件”是原因,而“动作”则是以及“第二状态”是结果。

具体解释如下:①当前状态:指当前状态。

②条件:也称为“事件”。

当满足条件时,将触发操作或执行状态转换。

③动作:满足条件后执行的动作。

执行动作后,可以将其迁移到新状态,也可以保持原始状态。

该动作是不必要的。

满足条件后,您也可以直接移至新状态,而无需执行任何操作。

④第二种状态:满足条件后要转移到的新状态。

所述“第二状态”指的是第二状态。

相对于“当前状态”。

一旦“第二状态”出现,则进入第二状态。

当激活“激活状态”时,它转换成新的“当前状态”。

如果我们进一步归纳和统一“现状”,那么,和“第二状态”,而忽略了“动作”。

(降级处理),只剩下两个最关键的元素,即:状态和转换条件。

有很多表达状态机的方法。

我们可以用文本,图形或表格的形式表示状态机。

举一个简单的例子:就密钥处理而言,击键本身也可以看作是状态机。

一个小的按键动作包括:释放,摇动,关闭,摇动和重新释放状态。

当我们开放思想并将状态机引入程序时,我们将找到一个有效的捷径来处理问题。

有时,考虑状态机的思想比考虑控制过程的思想更有效。

这样,状态机具有更实用的功能。

废话不多,实践是检验真理的唯一标准。

有些人可能认为状态机使问题复杂化。

实际上,完成软件设计的人已经在不可见地使用状态机。

这是几个状态机的摘要。

第一种类型:开关盒结构状态机switch()。

情况1:。

如果(不重复状态1)。

进入1状态之前需要做的准备。

进入1状态的过程。

如果(不重复状态1)。

离开状态的过程1. case2 :。

....但是,这种方法不能有效地预定义所有状态,也不能合理地定义这些状态之间的切换过程。

没有关于“状态”的合理定义。

本身。

这几乎是一种面向过程的方式。

这种方法很简单,最容易为人们接受。

缺点是没有“状态”的定义和分配功能,这导致状态混乱,状态处理中的重复代码甚至不一致。

根据OO的概念,状态描述是固有的,它应该是一个实体。

状态机的第二种类型:ifelse语句结构状态机这种状态机相对灵活,但是对于某些大型项目,系统软件设计会相对复杂。

以上两个状态机是每个人接触最多的状态机,并且它们也是经常使用的,因此在这里我不会谈论它们。

以下重点介绍第三种状态机。

状态机的第三种类型:消息触发状态机。

这种状态机的实现方式很多,形式多样,但是状态机的四个要素与当前状态,条件,动作和次要状态是密不可分的。

下面描述消息触发类型的状态机。

基于消息驱动状态机机制的原理:触发消息后,系统服务功能立即在状态下搜索消息和消息处理功能对,并在找到消息后执行消息处理功能。

步骤:1.添加消息和消息映射... BEGIN_MESSAGE_ MAP(名称,计数):状态机名称,消息数ADD_NEW_MSG_ITEM(消息,OnMsg):消息和消息处理功能END_ME

欢迎您的咨询