#include <stdint.h>
class Block;
-class Hook;
class StepperMotor;
class Stepper : public Module
void on_block_begin(void *argument);
void on_block_end(void *argument);
void on_gcode_received(void *argument);
- void on_gcode_execute(void *argument);
- void on_play(void *argument);
- void on_pause(void *argument);
void on_halt(void *argument);
- uint32_t main_interrupt(uint32_t dummy);
- void trapezoid_generator_reset();
- void set_step_events_per_second(float);
- uint32_t trapezoid_generator_tick(uint32_t dummy);
- uint32_t stepper_motor_finished_move(uint32_t dummy);
- int config_step_timer( int cycles );
+
void turn_enable_pins_on();
void turn_enable_pins_off();
- uint32_t synchronize_acceleration(uint32_t dummy);
- int get_acceleration_ticks_per_second() const { return acceleration_ticks_per_second; }
- unsigned int get_minimum_steps_per_second() const { return minimum_steps_per_second; }
- float get_trapezoid_adjusted_rate() const { return trapezoid_adjusted_rate; }
const Block *get_current_block() const { return current_block; }
private:
+ void stepper_motor_finished_move();
+
Block *current_block;
- int counters[3];
- int stepped[3];
- int offsets[3];
- float counter_alpha;
- float counter_beta;
- float counter_gamma;
- unsigned int out_bits;
- float trapezoid_adjusted_rate;
- int trapezoid_tick_cycle_counter;
- int cycles_per_step_event;
- int microseconds_per_step_pulse;
- int acceleration_ticks_per_second;
- unsigned int minimum_steps_per_second;
- int base_stepping_frequency;
- unsigned short step_bits[3];
- int counter_increment;
- Hook *acceleration_tick_hook;
- StepperMotor *main_stepper;
struct {
bool enable_pins_status:1;
- bool force_speed_update:1;
- bool paused:1;
- bool trapezoid_generator_busy:1;
- bool halted:1;
};
};