实时控制软件设计第二次作业

实时控制软件设计第二周作业


作业要求

根据本周课堂内容,设计一个停车场门禁控制系统的状态机。

作答如下

  • 状态机的所有状态
    s0:红灯
    s1:绿灯

  • 外部事件
    e0:入闸传感器值True,且杆位置信号为落下
    e1:出闸传感器值True,且杆位置信号为升起
    e2:杆位置信号为升起
    e3:杆位置信号为落下

  • 产生动作
    a0:起落杆上升
    a1:起落杆下降

C程序片段如下

cur_state = nxt_state;
switch(cur_state) //在当前状态中判断事件
{
case s0: //在s0状态
if(e0) //如果发生e0事件,那么就执行a0动作;
{
a0();//执行a0动作;
}
else if(e2) //如果发生e2事件,那么就将状态转移到s1;
{
nxt_state = s1;
}
else
{
break;
}

case s1: //在s1状态
if(e1) //如果发生e1事件,那么就执行a1动作;
{
a1();//执行a1动作;
}
else if(e3) //如果发生e3事件,那么就将状态转移到s0;
{
nxt_state = s0;
}
else
{
break;
}
}

posted @ 2016-12-06 22:21  周佩  阅读(193)  评论(1)    收藏  举报