X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Falgo%2Framp.h;h=1ca7bb76eb574ffd7bc4d395619a2409d8105d7a;hb=00bc8478ab5087769fc67e52327934370ee5e3a6;hp=202441f4c0736ca604b4b87e96e77bd543070b4c;hpb=c22fe24a0da896a52dbc3882390ec18a440ef56a;p=bertos.git diff --git a/bertos/algo/ramp.h b/bertos/algo/ramp.h index 202441f4..1ca7bb76 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,6 +37,17 @@ * 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 + * + * $WIZARD_MODULE = { + * "name" : "ramp", + * "depends" : [], + * "configuration" : "bertos/cfg/cfg_ramp.h" + * } */ #ifndef ALGO_RAMP_H @@ -51,48 +55,9 @@ #include "hw/hw_stepper.h" -#include +#include "cfg/cfg_ramp.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 - - -///< Negative pulse width for ramp -#define RAMP_PULSE_WIDTH 50 - -///< 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 /** @@ -197,7 +162,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 */