diff -r 36d1fa37f5e1 -r bae4965439b8 rt/msr_module.c --- a/rt/msr_module.c Fri Jan 20 16:04:10 2006 +0000 +++ b/rt/msr_module.c Fri Jan 20 17:50:35 2006 +0000 @@ -33,7 +33,7 @@ // EtherCAT #include "../include/EtherCAT_rt.h" -#include "../eclib/eclib.h" +#include "../libec/libec.h" // Defines/Makros #define TSC2US(T1, T2) ((T2 - T1) * 1000UL / cpu_khz) @@ -51,11 +51,7 @@ static struct ipipe_sysinfo sys_info; // EtherCAT - ec_master_t *master = NULL; -static unsigned int ecat_bus_time = 0; -static unsigned int ecat_timeouts = 0; - ec_slave_t *s_in1, *s_out1, *s_out2, *s_out3; double value; @@ -90,18 +86,22 @@ } else { // "Star Trek"-Effekte - *((unsigned char *) s_out1->process_data) = jiffies; - *((unsigned char *) s_out2->process_data) = jiffies >> 4; - *((unsigned char *) s_out3->process_data) = jiffies >> 8; + LEC_write_EL20XX(s_out1, 0, jiffies & 1); + LEC_write_EL20XX(s_out1, 1, (jiffies >> 1) & 1); + LEC_write_EL20XX(s_out1, 2, (jiffies >> 2) & 1); + LEC_write_EL20XX(s_out1, 3, (jiffies >> 3) & 1); + LEC_write_EL20XX(s_out2, 0, (jiffies >> 4) & 1); + LEC_write_EL20XX(s_out2, 1, (jiffies >> 3) & 1); + LEC_write_EL20XX(s_out2, 2, (jiffies >> 2) & 1); + LEC_write_EL20XX(s_out2, 3, (jiffies >> 6) & 1); + LEC_write_EL20XX(s_out3, 0, (jiffies >> 7) & 1); + LEC_write_EL20XX(s_out3, 1, (jiffies >> 2) & 1); + LEC_write_EL20XX(s_out3, 2, (jiffies >> 8) & 1); counter = MSR_ABTASTFREQUENZ / 4; } - if (((char *) s_in1->process_data)[2] < 0) - ((unsigned char *) s_out3->process_data)[0] |= 8; - else - ((unsigned char *) s_out3->process_data)[0] &= ~8; - + LEC_write_EL20XX(s_out3, 3, LEC_read_EL31XX(s_in1, 0) < 0); // Prozessdaten lesen und schreiben EtherCAT_rt_domain_xio(master, 0, 40); @@ -168,9 +168,6 @@ msr_reg_kanal("/value", "V", &value, TDBL); msr_reg_kanal("/dig1", "", &dig1, TINT); - msr_reg_kanal("/Taskinfo/EtherCAT/BusTime", "us", &ecat_bus_time, TUINT); - msr_reg_kanal("/Taskinfo/EtherCAT/Timeouts", "", &ecat_timeouts, TUINT); - return 0; }