examples/dc_rtai/dc_rtai_sample.c
changeset 1434 4c6fe0ae37f1
parent 1417 7c2d5d69134c
child 1438 1d30b96bb04f
equal deleted inserted replaced
1433:a7320cd4ede6 1434:4c6fe0ae37f1
    49 
    49 
    50 #define TIMERTICKS (1000000000 / FREQUENCY)
    50 #define TIMERTICKS (1000000000 / FREQUENCY)
    51 
    51 
    52 #define NUM_DIG_OUT 1
    52 #define NUM_DIG_OUT 1
    53 
    53 
    54 #define PFX "ec_dc_sample: "
    54 #define PFX "ec_dc_rtai_sample: "
    55 
    55 
    56 /*****************************************************************************/
    56 /*****************************************************************************/
    57 
    57 
    58 // EtherCAT
    58 // EtherCAT
    59 static ec_master_t *master = NULL;
    59 static ec_master_t *master = NULL;
   218         tv.tv_usec += 1000;
   218         tv.tv_usec += 1000;
   219         if (tv.tv_usec >= 1000000)  {
   219         if (tv.tv_usec >= 1000000)  {
   220             tv.tv_usec -= 1000000;
   220             tv.tv_usec -= 1000000;
   221             tv.tv_sec++;
   221             tv.tv_sec++;
   222         }
   222         }
       
   223         ecrt_master_application_time(master, EC_TIMEVAL2NANO(&tv));
   223             
   224             
   224         if (sync_ref_counter) {
   225         if (sync_ref_counter) {
   225             sync_ref_counter--;
   226             sync_ref_counter--;
   226         } else {
   227         } else {
   227             sync_ref_counter = 9;
   228             sync_ref_counter = 9;
   228 #if 0
   229             ecrt_master_sync_reference_clock(master);
   229             printk(KERN_INFO PFX "ref: %u %u %llu\n",
       
   230                     (u32) tv.tv_sec, (u32) tv.tv_usec, EC_TIMEVAL2NANO(&tv));
       
   231 #endif
       
   232             ecrt_master_sync_reference_clock(master, EC_TIMEVAL2NANO(&tv));
       
   233         }
   230         }
   234 		ecrt_master_sync_slave_clocks(master);
   231 		ecrt_master_sync_slave_clocks(master);
   235         ecrt_domain_queue(domain1);
   232         ecrt_domain_queue(domain1);
   236         ecrt_master_send(master);
   233         ecrt_master_send(master);
   237         rt_sem_signal(&master_sem);
   234         rt_sem_signal(&master_sem);