rt/msr_module.c
changeset 57 bae4965439b8
parent 56 36d1fa37f5e1
child 59 c8bd4fe3b38c
--- 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;
 }