41 lines
1.6 KiB
C
41 lines
1.6 KiB
C
|
|
/*******************************************************************************
|
||
|
|
* 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_RAMP_RAMP_H_
|
||
|
|
#define TMC_RAMP_RAMP_H_
|
||
|
|
|
||
|
|
#include "LinearRamp1.h"
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
TMC_RAMP_TYPE_LINEAR
|
||
|
|
} TMC_RampType;
|
||
|
|
|
||
|
|
// Initializes ramp parameters for given type
|
||
|
|
void tmc_ramp_init(void *ramp, TMC_RampType type);
|
||
|
|
|
||
|
|
// Computes new ramp state after delta ticks have passed
|
||
|
|
// Note: To call this function periodically with a fixed delta-time, use delta = 1 and
|
||
|
|
// define the units of acceleration as v/delta-time. If you want to specify a different unit,
|
||
|
|
// change delta to your preference.
|
||
|
|
// Returns the position difference of the calculation.
|
||
|
|
int32_t tmc_ramp_compute(void *ramp, TMC_RampType type, uint32_t delta);
|
||
|
|
|
||
|
|
// Returns the current ramp velocity computed by the given ramp
|
||
|
|
int32_t tmc_ramp_get_rampVelocity(void *ramp, TMC_RampType type);
|
||
|
|
|
||
|
|
// Returns the current ramp position computed by the given ramp
|
||
|
|
int32_t tmc_ramp_get_rampPosition(void *ramp, TMC_RampType type);
|
||
|
|
|
||
|
|
// Enable/disable ramps
|
||
|
|
bool tmc_ramp_get_enabled(void *ramp, TMC_RampType type);
|
||
|
|
void tmc_ramp_set_enabled(void *ramp, TMC_RampType type, bool enabled);
|
||
|
|
void tmc_ramp_toggle_enabled(void *ramp, TMC_RampType type);
|
||
|
|
|
||
|
|
#endif /* TMC_RAMP_RAMP_H_ */
|