include/EtherCAT_si.h
changeset 59 c8bd4fe3b38c
child 66 cab9cc6a2721
equal deleted inserted replaced
58:21b7342e2a90 59:c8bd4fe3b38c
       
     1 /******************************************************************************
       
     2  *
       
     3  *  E t h e r C A T _ s i . h
       
     4  *
       
     5  *  EtherCAT Slave-Interface.
       
     6  *
       
     7  *  $Id$
       
     8  *
       
     9  *****************************************************************************/
       
    10 
       
    11 #define EC_PROC_DATA(SLAVE) ((unsigned char *) ((SLAVE)->process_data))
       
    12 
       
    13 /*****************************************************************************/
       
    14 
       
    15 #define EC_READ_EL10XX(SLAVE, CHANNEL) \
       
    16     ((EC_PROC_DATA(SLAVE)[0] >> (CHANNEL)) & 0x01)
       
    17 
       
    18 /*****************************************************************************/
       
    19 
       
    20 #define EC_READ_EL31XX(SLAVE, CHANNEL) \
       
    21     ((short int) ((EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 2] << 8) | \
       
    22                    EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 1]))
       
    23 
       
    24 /*****************************************************************************/
       
    25 
       
    26 #define EC_WRITE_EL20XX(SLAVE, CHANNEL, VALUE) \
       
    27     do { \
       
    28         if (VALUE) EC_PROC_DATA(SLAVE)[0] |=  (1 << (CHANNEL)); \
       
    29         else       EC_PROC_DATA(SLAVE)[0] &= ~(1 << (CHANNEL)); \
       
    30     } while (0)
       
    31 
       
    32 /*****************************************************************************/
       
    33 
       
    34 #define EC_WRITE_EL41XX(SLAVE, CHANNEL, VALUE) \
       
    35     do { \
       
    36         EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 1] = ((VALUE) & 0xFF00) >> 8; \
       
    37         EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 2] =  (VALUE) & 0xFF; \
       
    38     } while (0)
       
    39 
       
    40 /*****************************************************************************/
       
    41 
       
    42 /* Emacs-Konfiguration
       
    43 ;;; Local Variables: ***
       
    44 ;;; c-basic-offset:4 ***
       
    45 ;;; End: ***
       
    46 */