/******************************************************************************* * Copyright © 2018 TRINAMIC Motion Control GmbH & Co. KG * (now owned by Analog Devices Inc.), * * Copyright © 2023 Analog Devices Inc. All Rights Reserved. This software is * proprietary & confidential to Analog Devices, Inc. and its licensors. *******************************************************************************/ #ifndef TMC_HELPERS_CONFIG_H_ #define TMC_HELPERS_CONFIG_H_ #include "Constants.h" #include "Types.h" // Callback functions have IC-dependent parameters // To store the function pointers we use this dummy type, which is never // called without casting it to the IC-specific type first. // (Casting between function pointers is allowed by the C standard) typedef void (*tmc_callback_config)(void); // States of a configuration typedef enum { CONFIG_READY, CONFIG_RESET, CONFIG_RESTORE } ConfigState; // structure for configuration mechanism typedef struct { ConfigState state; uint8_t configIndex; int32_t shadowRegister[TMC_REGISTER_COUNT]; uint8_t (*reset) (void); uint8_t (*restore) (void); tmc_callback_config callback; uint8_t channel; } ConfigurationTypeDef; #endif /* TMC_HELPERS_CONFIG_H_ */