examples/msr/msr_sample.c
changeset 512 24292123d174
parent 509 87baea61d0c7
child 814 a51f857b1b2d
equal deleted inserted replaced
511:73fb3c35e53d 512:24292123d174
    64 ec_domain_t *domain1 = NULL;
    64 ec_domain_t *domain1 = NULL;
    65 
    65 
    66 // raw process data
    66 // raw process data
    67 void *r_ana_out;
    67 void *r_ana_out;
    68 
    68 
    69 // Channels
    69 // channels
    70 double k_ana_out;
    70 double k_ana_out;
    71 
    71 
    72 ec_pdo_reg_t domain1_pdos[] = {
    72 ec_pdo_reg_t domain1_pdos[] = {
    73     {"3", Beckhoff_EL4132_Output1, &r_ana_out},
    73     {"3", Beckhoff_EL4132_Output1, &r_ana_out},
    74     {}
    74     {}
    76 
    76 
    77 /*****************************************************************************/
    77 /*****************************************************************************/
    78 
    78 
    79 void msr_controller_run(void)
    79 void msr_controller_run(void)
    80 {
    80 {
       
    81     // receive
    81     rt_sem_wait(&master_sem);
    82     rt_sem_wait(&master_sem);
    82 
       
    83     // receive
       
    84     ecrt_master_receive(master);
    83     ecrt_master_receive(master);
    85     ecrt_domain_process(domain1);
    84     ecrt_domain_process(domain1);
       
    85     rt_sem_signal(&master_sem);
    86 
    86 
    87     // Process data
    87     // Process data
    88     EC_WRITE_S16(r_ana_out, k_ana_out / 10.0 * 0x7FFF);
    88     EC_WRITE_S16(r_ana_out, k_ana_out / 10.0 * 0x7FFF);
    89 
    89 
    90     // Send
    90     // Send
       
    91     rt_sem_wait(&master_sem);
    91     ecrt_domain_queue(domain1);
    92     ecrt_domain_queue(domain1);
    92     ecrt_master_run(master);
    93     ecrt_master_run(master);
    93     ecrt_master_send(master);
    94     ecrt_master_send(master);
    94 
       
    95     rt_sem_signal(&master_sem);
    95     rt_sem_signal(&master_sem);
    96 
    96 
    97     msr_write_kanal_list();
    97     msr_write_kanal_list();
    98 }
    98 }
    99 
    99 
   219 }
   219 }
   220 
   220 
   221 /*****************************************************************************/
   221 /*****************************************************************************/
   222 
   222 
   223 MODULE_LICENSE("GPL");
   223 MODULE_LICENSE("GPL");
   224 MODULE_AUTHOR ("Florian Pose <fp@igh-essen.com>");
   224 MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
   225 MODULE_DESCRIPTION ("EtherCAT RTAI MSR sample module");
   225 MODULE_DESCRIPTION("EtherCAT RTAI MSR sample module");
   226 
   226 
   227 module_init(init_mod);
   227 module_init(init_mod);
   228 module_exit(cleanup_mod);
   228 module_exit(cleanup_mod);
   229 
   229 
   230 /*****************************************************************************/
   230 /*****************************************************************************/