前言:Switch分支在按步骤执行或者实现状态机跳转时非常重要,尤其在实现刷写程序时,可以根据不同的分支完成刷写的各个流程
仿真一个状态机,
当'W'键按下时,状态机跳转到WarmInit状态
当'E'键按下时,状态机跳转到Enable状态
当'D'键按下时,状态机跳转到Disable状态
当'S'键按下时,状态机跳转到Shutdown状态
默认系统状态是Disable.
如下图,可以这样定义变量
首先定义了枚举量SYSST里面定义了系统的各个状态
另外定义了SysSt来存储系统当前的状态。同时在定时器Tmr4ms中实现状态机的状态输出。
Key事件代码如下:
定时器处理函数代码如下:
编译CAPL脚本并重新运行CANOE
Write窗口中可以看到相应Key按下后相应的事件响应
Tips: 在这里控制系统状态跳转的定时器,只有在相应的Key按下后才设置。这样可以保证Write窗口比较干净。正常状态机应该是实时监控的,如果要实时监控只用将定时器设置移到定时器响应函数中就可以了。