Merged Marlin, Marlin non gen6 and Ultimaker changes
This commit is contained in:
@ -1,27 +1,20 @@
|
||||
#ifndef __MARLINH
|
||||
#define __MARLINH
|
||||
|
||||
// Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware.
|
||||
// Licence: GPL
|
||||
#include <WProgram.h>
|
||||
#include "fastio.h"
|
||||
extern "C" void __cxa_pure_virtual();
|
||||
void __cxa_pure_virtual(){};
|
||||
|
||||
|
||||
#define ECHO(x) Serial << "echo: " << x;
|
||||
#define ECHOLN(x) Serial << "echo: "<<x<<endl;
|
||||
|
||||
void get_command();
|
||||
void process_commands();
|
||||
|
||||
void manage_inactivity(byte debug);
|
||||
|
||||
void manage_heater();
|
||||
int temp2analogu(int celsius, const short table[][2], int numtemps);
|
||||
float analog2tempu(int raw, const short table[][2], int numtemps);
|
||||
#ifdef HEATER_USES_THERMISTOR
|
||||
#define HEATERSOURCE 1
|
||||
#endif
|
||||
#ifdef BED_USES_THERMISTOR
|
||||
#define BEDSOURCE 1
|
||||
#endif
|
||||
|
||||
#define temp2analogh( c ) temp2analogu((c),temptable,NUMTEMPS)
|
||||
#define analog2temp( c ) analog2tempu((c),temptable,NUMTEMPS)
|
||||
|
||||
#if X_ENABLE_PIN > -1
|
||||
#define enable_x() WRITE(X_ENABLE_PIN, X_ENABLE_ON)
|
||||
#define disable_x() WRITE(X_ENABLE_PIN,!X_ENABLE_ON)
|
||||
@ -43,9 +36,12 @@ float analog2tempu(int raw, const short table[][2], int numtemps);
|
||||
#define enable_z() ;
|
||||
#define disable_z() ;
|
||||
#endif
|
||||
|
||||
#if E_ENABLE_PIN > -1
|
||||
#define enable_e() WRITE(E_ENABLE_PIN, E_ENABLE_ON)
|
||||
#define disable_e() WRITE(E_ENABLE_PIN,!E_ENABLE_ON)
|
||||
|
||||
#define enable_e() WRITE(E_ENABLE_PIN, E_ENABLE_ON)
|
||||
#define disable_e() WRITE(E_ENABLE_PIN,!E_ENABLE_ON)
|
||||
|
||||
#else
|
||||
#define enable_e() ;
|
||||
#define disable_e() ;
|
||||
@ -61,47 +57,27 @@ void ClearToSend();
|
||||
|
||||
void get_coordinates();
|
||||
void prepare_move();
|
||||
void linear_move(unsigned long steps_remaining[]);
|
||||
void do_step(int axis);
|
||||
void kill(byte debug);
|
||||
|
||||
// This struct is used when buffering the setup for each linear movement "nominal" values are as specified in
|
||||
// the source g-code and may never actually be reached if acceleration management is active.
|
||||
typedef struct {
|
||||
// Fields used by the bresenham algorithm for tracing the line
|
||||
long steps_x, steps_y, steps_z, steps_e; // Step count along each axis
|
||||
long step_event_count; // The number of step events required to complete this block
|
||||
volatile long accelerate_until; // The index of the step event on which to stop acceleration
|
||||
volatile long decelerate_after; // The index of the step event on which to start decelerating
|
||||
volatile long acceleration_rate; // The acceleration rate used for acceleration calculation
|
||||
unsigned char direction_bits; // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h)
|
||||
//void check_axes_activity();
|
||||
//void plan_init();
|
||||
//void st_init();
|
||||
//void tp_init();
|
||||
//void plan_buffer_line(float x, float y, float z, float e, float feed_rate);
|
||||
//void plan_set_position(float x, float y, float z, float e);
|
||||
//void st_wake_up();
|
||||
//void st_synchronize();
|
||||
void enquecommand(const char *cmd);
|
||||
void wd_reset();
|
||||
|
||||
long advance_rate;
|
||||
volatile long initial_advance;
|
||||
volatile long final_advance;
|
||||
float advance;
|
||||
#ifndef CRITICAL_SECTION_START
|
||||
#define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli();
|
||||
#define CRITICAL_SECTION_END SREG = _sreg;
|
||||
#endif //CRITICAL_SECTION_START
|
||||
|
||||
// Fields used by the motion planner to manage acceleration
|
||||
float speed_x, speed_y, speed_z, speed_e; // Nominal mm/minute for each axis
|
||||
float nominal_speed; // The nominal speed for this block in mm/min
|
||||
float millimeters; // The total travel of this block in mm
|
||||
float entry_speed;
|
||||
float acceleration; // acceleration mm/sec^2
|
||||
extern float homing_feedrate[];
|
||||
extern bool axis_relative_modes[];
|
||||
|
||||
// Settings for the trapezoid generator
|
||||
long nominal_rate; // The nominal step rate for this block in step_events/sec
|
||||
volatile long initial_rate; // The jerk-adjusted step rate at start of block
|
||||
volatile long final_rate; // The minimal rate at exit
|
||||
long acceleration_st; // acceleration steps/sec^2
|
||||
volatile char busy;
|
||||
} block_t;
|
||||
|
||||
void check_axes_activity();
|
||||
void plan_init();
|
||||
void st_init();
|
||||
void tp_init();
|
||||
void plan_buffer_line(float x, float y, float z, float e, float feed_rate);
|
||||
void plan_set_position(float x, float y, float z, float e);
|
||||
void st_wake_up();
|
||||
void st_synchronize();
|
||||
void manage_inactivity(byte debug);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user