master/master.c
branchstable-1.5
changeset 2476 9a0d30056e70
parent 2467 74ede087bc85
child 2485 5535603c34a0
equal deleted inserted replaced
2475:9c18c29b8942 2476:9a0d30056e70
  2070         }
  2070         }
  2071     }
  2071     }
  2072 
  2072 
  2073     // always set DC reference clock to OP
  2073     // always set DC reference clock to OP
  2074     if (master->dc_ref_clock) {
  2074     if (master->dc_ref_clock) {
  2075         ec_slave_request_state(master->dc_ref_clock,
  2075         ec_slave_request_state(master->dc_ref_clock, EC_SLAVE_STATE_OP);
  2076                 EC_SLAVE_STATE_OP);
       
  2077     }
  2076     }
  2078 }
  2077 }
  2079 
  2078 
  2080 /******************************************************************************
  2079 /******************************************************************************
  2081  *  Application interface
  2080  *  Application interface
  2627 
  2626 
  2628 /*****************************************************************************/
  2627 /*****************************************************************************/
  2629 
  2628 
  2630 void ecrt_master_sync_reference_clock(ec_master_t *master)
  2629 void ecrt_master_sync_reference_clock(ec_master_t *master)
  2631 {
  2630 {
  2632     EC_WRITE_U32(master->ref_sync_datagram.data, master->app_time);
  2631     if (master->dc_ref_clock) {
  2633     ec_master_queue_datagram(master, &master->ref_sync_datagram);
  2632         EC_WRITE_U32(master->ref_sync_datagram.data, master->app_time);
       
  2633         ec_master_queue_datagram(master, &master->ref_sync_datagram);
       
  2634     }
  2634 }
  2635 }
  2635 
  2636 
  2636 /*****************************************************************************/
  2637 /*****************************************************************************/
  2637 
  2638 
  2638 void ecrt_master_sync_slave_clocks(ec_master_t *master)
  2639 void ecrt_master_sync_slave_clocks(ec_master_t *master)
  2639 {
  2640 {
  2640     ec_datagram_zero(&master->sync_datagram);
  2641     if (master->dc_ref_clock) {
  2641     ec_master_queue_datagram(master, &master->sync_datagram);
  2642         ec_datagram_zero(&master->sync_datagram);
       
  2643         ec_master_queue_datagram(master, &master->sync_datagram);
       
  2644     }
  2642 }
  2645 }
  2643 
  2646 
  2644 /*****************************************************************************/
  2647 /*****************************************************************************/
  2645 
  2648 
  2646 void ecrt_master_sync_monitor_queue(ec_master_t *master)
  2649 void ecrt_master_sync_monitor_queue(ec_master_t *master)