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

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


作业要求

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

作答如下

  • 状态机的所有状态
    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;
    }

}

转载于:https://www.cnblogs.com/ritsuzp/p/6139269.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值