home.c: move fast_feedrate and search_feedrate to PROGMEM
This commit is contained in:
parent
51eb03583d
commit
ccbcbc5ab4
40
home.c
40
home.c
|
|
@ -53,8 +53,18 @@
|
||||||
sqrt((double)2 * ACCELERATION * ENDSTOP_CLEARANCE_Z / 1000.))
|
sqrt((double)2 * ACCELERATION * ENDSTOP_CLEARANCE_Z / 1000.))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint32_t get_fast_feedrate(enum axis_e n);
|
static const uint32_t PROGMEM fast_feedrate_P[3] = {
|
||||||
uint32_t get_search_feedrate(enum axis_e n);
|
(SEARCH_FAST_X > SEARCH_FEEDRATE_X) ? SEARCH_FAST_X : SEARCH_FEEDRATE_X,
|
||||||
|
(SEARCH_FAST_Y > SEARCH_FEEDRATE_Y) ? SEARCH_FAST_Y : SEARCH_FEEDRATE_Y,
|
||||||
|
(SEARCH_FAST_Z > SEARCH_FEEDRATE_Z) ? SEARCH_FAST_Z : SEARCH_FEEDRATE_Z,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const uint32_t PROGMEM search_feedrate_P[3] = {
|
||||||
|
(SEARCH_FAST_X > SEARCH_FEEDRATE_X) ? SEARCH_FEEDRATE_X : 0,
|
||||||
|
(SEARCH_FAST_Y > SEARCH_FEEDRATE_Y) ? SEARCH_FEEDRATE_Y : 0,
|
||||||
|
(SEARCH_FAST_Z > SEARCH_FEEDRATE_Z) ? SEARCH_FEEDRATE_Z : 0,
|
||||||
|
};
|
||||||
|
|
||||||
uint8_t get_endstop_check(enum axis_e n, int8_t dir);
|
uint8_t get_endstop_check(enum axis_e n, int8_t dir);
|
||||||
void home_axis(enum axis_e n, int8_t dir);
|
void home_axis(enum axis_e n, int8_t dir);
|
||||||
void set_axis_home_position(enum axis_e n, int8_t dir);
|
void set_axis_home_position(enum axis_e n, int8_t dir);
|
||||||
|
|
@ -135,28 +145,6 @@ void home_z_positive() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t get_fast_feedrate(enum axis_e n) {
|
|
||||||
uint32_t feedrate = 0;
|
|
||||||
if (n == X)
|
|
||||||
feedrate = SEARCH_FAST_X > SEARCH_FEEDRATE_X ? SEARCH_FAST_X : SEARCH_FEEDRATE_X;
|
|
||||||
else if (n == Y)
|
|
||||||
feedrate = SEARCH_FAST_Y > SEARCH_FEEDRATE_Y ? SEARCH_FAST_Y : SEARCH_FEEDRATE_Y;
|
|
||||||
else if (n == Z)
|
|
||||||
feedrate = SEARCH_FAST_Z > SEARCH_FEEDRATE_Z ? SEARCH_FAST_Z : SEARCH_FEEDRATE_Z;
|
|
||||||
return feedrate;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t get_search_feedrate(enum axis_e n) {
|
|
||||||
uint32_t feedrate = 0;
|
|
||||||
if (n == X)
|
|
||||||
feedrate = SEARCH_FAST_X > SEARCH_FEEDRATE_X ? SEARCH_FEEDRATE_X : 0;
|
|
||||||
else if (n == Y)
|
|
||||||
feedrate = SEARCH_FAST_Y > SEARCH_FEEDRATE_Y ? SEARCH_FEEDRATE_Y : 0;
|
|
||||||
else if (n == Z)
|
|
||||||
feedrate = SEARCH_FAST_Z > SEARCH_FEEDRATE_Z ? SEARCH_FEEDRATE_Z : 0;
|
|
||||||
return feedrate;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t get_endstop_check(enum axis_e n, int8_t dir) {
|
uint8_t get_endstop_check(enum axis_e n, int8_t dir) {
|
||||||
uint8_t endstop_check;
|
uint8_t endstop_check;
|
||||||
if (dir < 0)
|
if (dir < 0)
|
||||||
|
|
@ -172,11 +160,11 @@ void home_axis(enum axis_e n, int8_t dir) {
|
||||||
uint8_t endstop_check = get_endstop_check(n, dir);
|
uint8_t endstop_check = get_endstop_check(n, dir);
|
||||||
|
|
||||||
t.axis[n] = dir * MAX_DELTA_UM;
|
t.axis[n] = dir * MAX_DELTA_UM;
|
||||||
t.F = get_fast_feedrate(n);
|
t.F = pgm_read_dword(&fast_feedrate_P[n]);
|
||||||
enqueue_home(&t, endstop_check, 1);
|
enqueue_home(&t, endstop_check, 1);
|
||||||
|
|
||||||
uint32_t search_feedrate;
|
uint32_t search_feedrate;
|
||||||
search_feedrate = get_search_feedrate(n);
|
search_feedrate = pgm_read_dword(&search_feedrate_P[n]);
|
||||||
if (search_feedrate) {
|
if (search_feedrate) {
|
||||||
// back off slowly
|
// back off slowly
|
||||||
t.axis[n] = 0;
|
t.axis[n] = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue