|
|
@ -72,6 +72,9 @@ static volatile bool endstop_z_hit=false; |
|
|
|
#ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED |
|
|
|
bool abort_on_endstop_hit = false; |
|
|
|
#endif |
|
|
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN |
|
|
|
int motor_current_setting[3] = DEFAULT_PWM_MOTOR_CURRENT; |
|
|
|
#endif |
|
|
|
|
|
|
|
static bool old_x_min_endstop=false; |
|
|
|
static bool old_x_max_endstop=false; |
|
|
@ -1198,6 +1201,16 @@ void digipot_init() //Initialize Digipot Motor Current |
|
|
|
//digitalPotWrite(digipot_ch[i], digipot_motor_current[i]);
|
|
|
|
digipot_current(i,digipot_motor_current[i]); |
|
|
|
#endif |
|
|
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN |
|
|
|
pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT); |
|
|
|
pinMode(MOTOR_CURRENT_PWM_Z_PIN, OUTPUT); |
|
|
|
pinMode(MOTOR_CURRENT_PWM_E_PIN, OUTPUT); |
|
|
|
digipot_current(0, motor_current_setting[0]); |
|
|
|
digipot_current(1, motor_current_setting[1]); |
|
|
|
digipot_current(2, motor_current_setting[2]); |
|
|
|
//Set timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
|
|
|
|
TCCR5B = (TCCR5B & ~(_BV(CS50) | _BV(CS51) | _BV(CS52))) | _BV(CS50); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void digipot_current(uint8_t driver, int current) |
|
|
@ -1206,6 +1219,11 @@ void digipot_current(uint8_t driver, int current) |
|
|
|
const uint8_t digipot_ch[] = DIGIPOT_CHANNELS; |
|
|
|
digitalPotWrite(digipot_ch[driver], current); |
|
|
|
#endif |
|
|
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN |
|
|
|
if (driver == 0) analogWrite(MOTOR_CURRENT_PWM_XY_PIN, (long)current * 255L / (long)MOTOR_CURRENT_PWM_RANGE); |
|
|
|
if (driver == 1) analogWrite(MOTOR_CURRENT_PWM_Z_PIN, (long)current * 255L / (long)MOTOR_CURRENT_PWM_RANGE); |
|
|
|
if (driver == 2) analogWrite(MOTOR_CURRENT_PWM_E_PIN, (long)current * 255L / (long)MOTOR_CURRENT_PWM_RANGE); |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
void microstep_init() |
|
|
|