equal
deleted
inserted
replaced
97 } |
97 } |
98 |
98 |
99 k_preio = (uint32_t) (get_cycles() - offset) * 1e6 / cpu_khz; |
99 k_preio = (uint32_t) (get_cycles() - offset) * 1e6 / cpu_khz; |
100 |
100 |
101 #ifdef ASYNC |
101 #ifdef ASYNC |
|
102 |
102 // Empfangen |
103 // Empfangen |
103 ecrt_master_async_receive(master); |
104 ecrt_master_async_receive(master); |
104 ecrt_domain_process(domain1); |
105 ecrt_domain_process(domain1); |
105 |
106 |
106 // Prozessdaten verarbeiten |
107 // Prozessdaten verarbeiten |
111 k_angle = EC_READ_U16(r_inc); |
112 k_angle = EC_READ_U16(r_inc); |
112 #endif |
113 #endif |
113 |
114 |
114 // Senden |
115 // Senden |
115 ecrt_domain_queue(domain1); |
116 ecrt_domain_queue(domain1); |
|
117 ecrt_master_run(master); |
116 ecrt_master_async_send(master); |
118 ecrt_master_async_send(master); |
117 #else |
119 |
|
120 #else // ASYNC |
|
121 |
118 // Senden und empfangen |
122 // Senden und empfangen |
119 ecrt_domain_queue(domain1); |
123 ecrt_domain_queue(domain1); |
|
124 ecrt_master_run(master); |
120 ecrt_master_sync_io(master); |
125 ecrt_master_sync_io(master); |
121 ecrt_domain_process(domain1); |
126 ecrt_domain_process(domain1); |
122 |
127 |
123 // Prozessdaten verarbeiten |
128 // Prozessdaten verarbeiten |
124 #ifdef BLOCK1 |
129 #ifdef BLOCK1 |
182 /*****************************************************************************/ |
187 /*****************************************************************************/ |
183 |
188 |
184 int __init init_rt_module(void) |
189 int __init init_rt_module(void) |
185 { |
190 { |
186 struct ipipe_domain_attr attr; //ipipe |
191 struct ipipe_domain_attr attr; //ipipe |
|
192 #ifdef BLOCK1 |
187 uint8_t string[20]; |
193 uint8_t string[20]; |
188 size_t size; |
194 size_t size; |
189 ec_slave_t *slave; |
195 ec_slave_t *slave; |
|
196 #endif |
190 |
197 |
191 // Als allererstes die RT-Lib initialisieren |
198 // Als allererstes die RT-Lib initialisieren |
192 if (msr_rtlib_init(1, MSR_ABTASTFREQUENZ, 10, &msr_globals_register) < 0) { |
199 if (msr_rtlib_init(1, MSR_ABTASTFREQUENZ, 10, &msr_globals_register) < 0) { |
193 msr_print_warn("msr_modul: can't initialize rtlib!"); |
200 msr_print_warn("msr_modul: can't initialize rtlib!"); |
194 goto out_return; |
201 goto out_return; |
284 attr.priority = IPIPE_ROOT_PRIO + 1; |
291 attr.priority = IPIPE_ROOT_PRIO + 1; |
285 attr.entry = &domain_entry; |
292 attr.entry = &domain_entry; |
286 ipipe_register_domain(&this_domain, &attr); |
293 ipipe_register_domain(&this_domain, &attr); |
287 return 0; |
294 return 0; |
288 |
295 |
|
296 #ifdef BLOCK1 |
289 out_deactivate: |
297 out_deactivate: |
290 ecrt_master_deactivate(master); |
298 ecrt_master_deactivate(master); |
|
299 #endif |
291 out_release_master: |
300 out_release_master: |
292 ecrt_release_master(master); |
301 ecrt_release_master(master); |
293 out_msr_cleanup: |
302 out_msr_cleanup: |
294 msr_rtlib_cleanup(); |
303 msr_rtlib_cleanup(); |
295 out_return: |
304 out_return: |