X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Falgo%2Framp.h;h=6ec37c8c9ecd865e939efdd882372e9c478c012a;hb=37efb5bdc0504ab6df2e8db0635c9c6f7477e23e;hp=b1fe716fba0104c3f141355449aea2367a5bb08f;hpb=d3774c5c1c4ebb4710773627068be0ad39a479e3;p=bertos.git diff --git a/bertos/algo/ramp.h b/bertos/algo/ramp.h index b1fe716f..6ec37c8c 100644 --- a/bertos/algo/ramp.h +++ b/bertos/algo/ramp.h @@ -1,4 +1,3 @@ - /** * \file * * - * \brief Compute, save and load ramps for stepper motors (interace) - * - * \version $Id$ - * - * \author Simone Zinanni - * \author Giovanni Bajo - * \author Daniele Basile + * \brief Compute, save and load ramps for stepper motors. * * The acceleration ramp is used to properly accelerate a stepper motor. The main * entry point is the function ramp_evaluate(), which must be called at every step @@ -44,54 +37,24 @@ * for DSP56000 (but a portable C version of it can be easily written, see the * comments in the code). * + * \version $Id$ + * + * \author Simone Zinanni + * \author Giovanni Bajo + * \author Daniele Basile + * + * $WIZ$ module_name = "ramp" + * $WIZ$ module_configuration = "bertos/cfg/cfg_ramp.h" */ #ifndef ALGO_RAMP_H #define ALGO_RAMP_H -#include -#include "hw_stepper.h" - -/** - * Define whether the ramp will use floating point calculation within ramp_evaluate(). - * Otherwise, a less precise fixed point version will be used, which is faster on - * platforms which do no support floating point operations. - * - * \note Floating point operations will be always done within ramp_compute() to - * precalculate values, so there has to be at least a floating point emulation support. - */ -#define RAMP_USE_FLOATING_POINT 0 - - -#if !RAMP_USE_FLOATING_POINT - - /** - * Number of least-significant bits which are stripped away during ramp evaluation. - * This setting allows to specify larger ramps at the price of less precision. - * - * The maximum ramp size allowed is 2^(24 + RAMP_CLOCK_SHIFT_PRECISION), in clocks. - * For instance, using RAMP_CLOCK_SHIFT_PRECISION 1, and a 8x prescaler, the maximum - * length of a ramp is about 6.7 secs. Raising RAMP_CLOCK_SHIFT_PRECISION to 2 - * brings the maximum length to 13.4 secs, at the price of less precision. - * - * ramp_compute() will check that the length is below the maximum allowed through - * a runtime assertion. - * - * \note This macro is used only for the fixed-point version of the ramp. - */ - #define RAMP_CLOCK_SHIFT_PRECISION 2 -#endif - +#include "hw/hw_stepper.h" -///< Negative pulse width for ramp -#define RAMP_PULSE_WIDTH 50 +#include "cfg/cfg_ramp.h" -///< Default ramp -#define RAMP_DEF_TIME 6000000 ///< microsecs -#define RAMP_DEF_MAXFREQ 5000 ///< Hz -#define RAMP_DEF_MINFREQ 200 ///< Hz -#define RAMP_DEF_POWERRUN 10 ///< 10 deciampere (1 ampere) -#define RAMP_DEF_POWERIDLE 1 ///< 1 deciampere +#include /** @@ -196,7 +159,9 @@ void ramp_default(struct Ramp *ramp); /** Self test */ -void ramp_test(void); +int ramp_testSetup(void); +int ramp_testRun(void); +int ramp_testTearDown(void); #endif /* ALGO_RAMP_H */