--- a/examples/mini/mini.c Thu Sep 06 14:21:02 2012 +0200
+++ b/examples/mini/mini.c Mon Nov 03 15:20:05 2014 +0100
@@ -331,7 +331,7 @@
// check for islave configuration state(s) (optional)
check_slave_config_states();
-
+
#if SDO_ACCESS
// read process data SDO
read_sdo();
@@ -358,15 +358,21 @@
/*****************************************************************************/
-void request_lock_callback(void *cb_data)
-{
- down(&master_sem);
-}
-
-/*****************************************************************************/
-
-void release_lock_callback(void *cb_data)
-{
+void send_callback(void *cb_data)
+{
+ ec_master_t *m = (ec_master_t *) cb_data;
+ down(&master_sem);
+ ecrt_master_send_ext(m);
+ up(&master_sem);
+}
+
+/*****************************************************************************/
+
+void receive_callback(void *cb_data)
+{
+ ec_master_t *m = (ec_master_t *) cb_data;
+ down(&master_sem);
+ ecrt_master_receive(m);
up(&master_sem);
}
@@ -381,19 +387,18 @@
#if EXTERNAL_MEMORY
unsigned int size;
#endif
-
+
printk(KERN_INFO PFX "Starting...\n");
master = ecrt_request_master(0);
if (!master) {
- ret = -EBUSY;
+ ret = -EBUSY;
printk(KERN_ERR PFX "Requesting master 0 failed.\n");
goto out_return;
}
sema_init(&master_sem, 1);
- ecrt_master_callbacks(master,
- request_lock_callback, release_lock_callback, master);
+ ecrt_master_callbacks(master, send_callback, receive_callback, master);
printk(KERN_INFO PFX "Registering domain...\n");
if (!(domain1 = ecrt_master_create_domain(master))) {
@@ -439,8 +444,7 @@
#if SDO_ACCESS
printk(KERN_INFO PFX "Creating SDO requests...\n");
- if (!(sdo = ecrt_slave_config_create_sdo_request(
- sc_ana_in, 0x3102, 2, 2))) {
+ if (!(sdo = ecrt_slave_config_create_sdo_request(sc_ana_in, 0x3102, 2, 2))) {
printk(KERN_ERR PFX "Failed to create SDO request.\n");
goto out_release_master;
}