2020-01-26 12:55发布
kebaojun305 发表于 2013-9-28 14:19 使用状态机就可以
Q-Phil 发表于 2013-10-10 14:31 专业学过软件工程的人都知道“有限状态机”的设计方法。 简单的说,主程序是一个循环,依次处理“各项事务 ...
最多设置5个标签!
能说的再详细点么,我有点无从下手
简单的说,主程序是一个循环,依次处理“各项事务”,比如数据采样、输出显示、动作响应等等。
原则是没项事务都不可耗时过长,即不可以用“delay_ms"、"wait”之类的指令,以保证主循环周期不要太长。
PLC就是用的这种方法,主循环周期应该不超过10ms,现在的cpu都很快,没问题的。
剩下是各个事务如何拆分了。
简单任务就不用说了,读到一个开关量就点亮一盏灯,瞬间的事情,咋编都行;
长周期的事务,比如说访问SHT1x,根据流程定义出几个状态,记在一个状态变量里,每次处理时根据状态只做一件事(如发送测温指令),然后修改到下一个状态,立即返回。
下次再来处理时,根据状态做相应的事(如查看转换是否完成,若完成则立即读取结果-改状态-返回,否则不改状态立即返回)
所以有限状态机的设计就是:
画一张图,定义状态,定义各状态间的转移顺序,定义状态转移的条件,不要有死状态......
用熟了,就很容易作出简单可靠、性能稳定的程序了。
单片机编程人员必须会的一种方法!
十分感谢.....
一周热门 更多>