fp@59: /****************************************************************************** fp@59: * fp@59: * E t h e r C A T _ s i . h fp@59: * fp@59: * EtherCAT Slave-Interface. fp@59: * fp@59: * $Id$ fp@59: * fp@59: *****************************************************************************/ fp@59: fp@59: #define EC_PROC_DATA(SLAVE) ((unsigned char *) ((SLAVE)->process_data)) fp@59: fp@59: /*****************************************************************************/ fp@59: fp@59: #define EC_READ_EL10XX(SLAVE, CHANNEL) \ fp@59: ((EC_PROC_DATA(SLAVE)[0] >> (CHANNEL)) & 0x01) fp@59: fp@59: /*****************************************************************************/ fp@59: fp@59: #define EC_READ_EL31XX(SLAVE, CHANNEL) \ fp@59: ((short int) ((EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 2] << 8) | \ fp@59: EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 1])) fp@59: fp@59: /*****************************************************************************/ fp@59: fp@59: #define EC_WRITE_EL20XX(SLAVE, CHANNEL, VALUE) \ fp@59: do { \ fp@59: if (VALUE) EC_PROC_DATA(SLAVE)[0] |= (1 << (CHANNEL)); \ fp@59: else EC_PROC_DATA(SLAVE)[0] &= ~(1 << (CHANNEL)); \ fp@59: } while (0) fp@59: fp@59: /*****************************************************************************/ fp@59: fp@59: #define EC_WRITE_EL41XX(SLAVE, CHANNEL, VALUE) \ fp@59: do { \ fp@59: EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 1] = ((VALUE) & 0xFF00) >> 8; \ fp@59: EC_PROC_DATA(SLAVE)[(CHANNEL) * 3 + 2] = (VALUE) & 0xFF; \ fp@59: } while (0) fp@59: fp@59: /*****************************************************************************/ fp@59: fp@66: #define EC_READ_EL5001(SLAVE) \ fp@66: ((unsigned int) (EC_PROC_DATA(SLAVE)[1] | \ fp@66: (EC_PROC_DATA(SLAVE)[2] << 8) | \ fp@66: (EC_PROC_DATA(SLAVE)[3] << 16) | \ fp@66: (EC_PROC_DATA(SLAVE)[4] << 24))) fp@66: fp@66: #define EC_READ_EL5001_STATE(SLAVE) \ fp@66: ((unsigned char) EC_PROC_DATA(SLAVE)[0]) fp@66: fp@66: /*****************************************************************************/ fp@66: fp@59: /* Emacs-Konfiguration fp@59: ;;; Local Variables: *** fp@59: ;;; c-basic-offset:4 *** fp@59: ;;; End: *** fp@59: */