examples/rtai/rtai_sample.c
branchstable-1.4
changeset 1680 8765cdafdc17
parent 1082 ff06c58e269c
child 1681 6e8477e16eec
--- a/examples/rtai/rtai_sample.c	Wed Nov 26 10:35:43 2008 +0000
+++ b/examples/rtai/rtai_sample.c	Mon Dec 29 10:52:51 2008 +0000
@@ -47,7 +47,7 @@
 
 // Module parameters
 
-#define FREQUENCY 2000 // task frequency in Hz
+#define FREQUENCY 1000 // task frequency in Hz
 #define INHIBIT_TIME 20
 
 #define TIMERTICKS (1000000000 / FREQUENCY)
@@ -95,9 +95,6 @@
     {}
 };
 
-static unsigned int counter = 0;
-static unsigned int blink = 0;
-
 /*****************************************************************************/
 
 #ifdef CONFIGURE_PDOS
@@ -204,42 +201,35 @@
 
 /*****************************************************************************/
 
+#define US(x) ((unsigned int) (x) * 1000 / cpu_khz)
+
 void run(long data)
 {
+    cycles_t c0, c1, c2, c3, c4;
+    unsigned int c = 10000;
+
     while (1) {
         t_last_cycle = get_cycles();
 
-        // receive process data
-        rt_sem_wait(&master_sem);
+        c0 = get_cycles();
         ecrt_master_receive(master);
+        c1 = get_cycles();
         ecrt_domain_process(domain1);
-        rt_sem_signal(&master_sem);
-
-        // check process data state (optional)
-        check_domain1_state();
-
-        if (counter) {
-            counter--;
-        } else { // do this at 1 Hz
-            counter = FREQUENCY;
-
-            // calculate new process data
-            blink = !blink;
-
-            // check for master state (optional)
-            check_master_state();
-
-            // check for islave configuration state(s) (optional)
-            check_slave_config_states();
+        c2 = get_cycles();
+        ecrt_domain_queue(domain1);
+        c3 = get_cycles();
+        ecrt_master_send(master);
+        c4 = get_cycles();
+
+        if (c) {
+            printk("TTTT4 %6u %4u %4u %4u %4u\n",
+                    c,
+                    US(c1 - c0),
+                    US(c2 - c1),
+                    US(c3 - c2),
+                    US(c4 - c3));
+            c--;
         }
-
-        // write process data
-        EC_WRITE_U8(domain1_pd + off_dig_out, blink ? 0x06 : 0x09);
-
-        rt_sem_wait(&master_sem);
-        ecrt_domain_queue(domain1);
-        ecrt_master_send(master);
-        rt_sem_signal(&master_sem);
 		
         rt_task_wait_period();
     }