master/fsm.c
changeset 311 197489292da8
parent 310 b7e7709fd40e
child 312 3b827a82060f
equal deleted inserted replaced
310:b7e7709fd40e 311:197489292da8
    83 void ec_fsm_change_start(ec_fsm_t *);
    83 void ec_fsm_change_start(ec_fsm_t *);
    84 void ec_fsm_change_check(ec_fsm_t *);
    84 void ec_fsm_change_check(ec_fsm_t *);
    85 void ec_fsm_change_status(ec_fsm_t *);
    85 void ec_fsm_change_status(ec_fsm_t *);
    86 void ec_fsm_change_code(ec_fsm_t *);
    86 void ec_fsm_change_code(ec_fsm_t *);
    87 void ec_fsm_change_ack(ec_fsm_t *);
    87 void ec_fsm_change_ack(ec_fsm_t *);
    88 void ec_fsm_change_ack2(ec_fsm_t *);
    88 void ec_fsm_change_check_ack(ec_fsm_t *);
    89 void ec_fsm_change_end(ec_fsm_t *);
    89 void ec_fsm_change_end(ec_fsm_t *);
    90 void ec_fsm_change_error(ec_fsm_t *);
    90 void ec_fsm_change_error(ec_fsm_t *);
    91 
    91 
    92 /*****************************************************************************/
    92 /*****************************************************************************/
    93 
    93 
  1771     fsm->change_start = get_cycles();
  1771     fsm->change_start = get_cycles();
  1772 
  1772 
  1773     // read new AL status
  1773     // read new AL status
  1774     ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2);
  1774     ec_datagram_nprd(datagram, slave->station_address, 0x0130, 2);
  1775     ec_master_queue_datagram(fsm->master, datagram);
  1775     ec_master_queue_datagram(fsm->master, datagram);
  1776     fsm->change_state = ec_fsm_change_ack2;
  1776     fsm->change_state = ec_fsm_change_check_ack;
  1777 }
  1777 }
  1778 
  1778 
  1779 /*****************************************************************************/
  1779 /*****************************************************************************/
  1780 
  1780 
  1781 /**
  1781 /**
  1782    Change state: ACK.
  1782    Change state: CHECK ACK.
  1783    Acknowledge 2.
  1783 */
  1784 */
  1784 
  1785 
  1785 void ec_fsm_change_check_ack(ec_fsm_t *fsm /**< finite state machine */)
  1786 void ec_fsm_change_ack2(ec_fsm_t *fsm /**< finite state machine */)
       
  1787 {
  1786 {
  1788     ec_datagram_t *datagram = &fsm->datagram;
  1787     ec_datagram_t *datagram = &fsm->datagram;
  1789     ec_slave_t *slave = fsm->slave;
  1788     ec_slave_t *slave = fsm->slave;
  1790     ec_slave_state_t ack_state;
  1789     ec_slave_state_t ack_state;
  1791 
  1790