捷比信高精密电阻EE / RX / RJ 电阻产品与技术资料联系业务人员

浅谈状态机的组成要素和分类

说到微控制器编程,我们必须谈论状态机。作为软件编程的主要框架,状态机已经以多种语言使用,包括C语言。在清晰有效的程序中,必须有一个状态机。出现。灵活的应用程序状态机不仅使程序更高效,而且具有良好的可读性和可伸缩性。状态无处不在,状态中有状态,只要您掌握了这种思维并将其养成编程习惯,我相信您会受益匪浅。状态机可以归纳为4个元素,即当前状态,条件,动作和第二状态。这种归纳主要是基于对状态机内部因果关系的考虑。 “当前状态”指的是“当前状态”。和“条件”是原因,而“动作”则是以及“第二状态”是结果。具体解释如下:①当前状态:指当前状态。 ②条件:也称为“事件”。当满足条件时,将触发操作或执行状态转换。 ③动作:满足条件后执行的动作。执行动作后,可以将其迁移到新状态,也可以保持原始状态。该动作是不必要的。满足条件后,您也可以直接移至新状态,而无需执行任何操作。 ④第二种状态:满足条件后要转移到的新状态。所述“第二状态”指的是第二状态。相对于“当前状态”。一旦“第二状态”出现,则进入第二状态。当激活“激活状态”时,它转换成新的“当前状态”。如果我们进一步归纳和统一“现状”,那么,和“第二状态”,而忽略了“动作”。 (降级处理),则仅剩下两个最关键的元素,即:状态和转换条件。有很多表达状态机的方法。我们可以用文本,图形或表格的形式表示状态机。举一个简单的例子:就密钥处理而言,击键本身也可以看作是状态机。一个小的按键动作包括:释放,摇动,关闭,摇动和重新释放状态。当我们开放思想并将状态机引入程序时,我们将找到一个有效的捷径来处理问题。有时,考虑状态机的思想比考虑控制过程的思想更有效。这样,状态机具有更实用的功能。废话不多,实践是检验真理的唯一标准。有些人可能认为状态机使问题复杂化。实际上,完成软件设计的人已经在不可见地使用状态机。这是几个状态机的摘要。第一种类型:开关盒结构状态机switch()。情况1:。如果(不重复状态1)。进入1状态之前需要做的准备。进入1状态的过程。如果(不重复状态1)。离开状态的过程1. case2 :。 ....但是,这种方法不能有效地预定义所有状态,也不能合理地定义这些状态之间的切换过程。没有关于“状态”的合理定义。本身。这几乎是一种面向过程的方式。这种方法很简单,最容易为人们接受。缺点是没有“状态”的定义和分配功能,这导致状态混乱,状态处理中的重复代码甚至不一致。根据OO的概念,状态描述本质上是它应该是一个实体。状态机的第二种类型:ifelse语句结构状态机这种状态机相对灵活,但是对于某些大型项目,系统软件设计会相对复杂。以上两个状态机是每个人接触最多的状态机,并且它们也是经常使用的,因此在这里我不会谈论它们。以下重点介绍第三种状态机。状态机的第三种类型:消息触发状态机。这种状态机的实现方式很多,形式多样,但是状态机的四个要素与当前状态,条件,动作和次要状态是密不可分的。下面描述消息触发类型的状态机。根据消息驱动状态机机制的原理:一旦触发消息,系统服务功能立即在该状态下搜索消息和消息处理功能对,并在找到消息后执行消息处理功能。步骤:1.添加消息和消息映射... BEGIN_MESSAGE_MAP(Name,Count):状态机名称,消息数ADD_NEW_MSG_ITEM(Msg,OnMsg):消息和消息处理功能END_MESSAGE_MA