Analog joystick jogging control (#14648)
This commit is contained in:
@ -44,6 +44,10 @@
|
||||
#include "../feature/bltouch.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(JOYSTICK)
|
||||
#include "../feature/joystick.h"
|
||||
#endif
|
||||
|
||||
Endstops endstops;
|
||||
|
||||
// private:
|
||||
@ -474,6 +478,11 @@ void _O2 Endstops::M119() {
|
||||
#if ENABLED(BLTOUCH)
|
||||
bltouch._reset_SW_mode();
|
||||
#endif
|
||||
|
||||
#if ENABLED(JOYSTICK_DEBUG)
|
||||
joystick.report();
|
||||
#endif
|
||||
|
||||
} // Endstops::M119
|
||||
|
||||
// The following routines are called from an ISR context. It could be the temperature ISR, the
|
||||
|
@ -64,6 +64,10 @@
|
||||
#include "../feature/leds/printer_event_leds.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(JOYSTICK)
|
||||
#include "../feature/joystick.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(SINGLENOZZLE)
|
||||
#include "tool_change.h"
|
||||
#endif
|
||||
@ -1685,6 +1689,18 @@ void Temperature::init() {
|
||||
#if HAS_TEMP_ADC_5
|
||||
HAL_ANALOG_SELECT(TEMP_5_PIN);
|
||||
#endif
|
||||
#if HAS_JOY_ADC_X
|
||||
HAL_ANALOG_SELECT(JOY_X_PIN);
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Y
|
||||
HAL_ANALOG_SELECT(JOY_Y_PIN);
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Z
|
||||
HAL_ANALOG_SELECT(JOY_Z_PIN);
|
||||
#endif
|
||||
#if HAS_JOY_ADC_EN
|
||||
SET_INPUT_PULLUP(JOY_EN_PIN);
|
||||
#endif
|
||||
#if HAS_HEATED_BED
|
||||
HAL_ANALOG_SELECT(TEMP_BED_PIN);
|
||||
#endif
|
||||
@ -2195,6 +2211,16 @@ void Temperature::set_current_temp_raw() {
|
||||
temp_chamber.update();
|
||||
#endif
|
||||
|
||||
#if HAS_JOY_ADC_X
|
||||
joystick.x.update();
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Y
|
||||
joystick.y.update();
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Z
|
||||
joystick.z.update();
|
||||
#endif
|
||||
|
||||
temp_meas_ready = true;
|
||||
}
|
||||
|
||||
@ -2225,6 +2251,16 @@ void Temperature::readings_ready() {
|
||||
temp_chamber.reset();
|
||||
#endif
|
||||
|
||||
#if HAS_JOY_ADC_X
|
||||
joystick.x.reset();
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Y
|
||||
joystick.y.reset();
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Z
|
||||
joystick.z.reset();
|
||||
#endif
|
||||
|
||||
static constexpr int8_t temp_dir[] = {
|
||||
#if ENABLED(HEATER_0_USES_MAX6675)
|
||||
0
|
||||
@ -2721,6 +2757,21 @@ void Temperature::isr() {
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if HAS_JOY_ADC_X
|
||||
case PrepareJoy_X: HAL_START_ADC(JOY_X_PIN); break;
|
||||
case MeasureJoy_X: ACCUMULATE_ADC(joystick.x); break;
|
||||
#endif
|
||||
|
||||
#if HAS_JOY_ADC_Y
|
||||
case PrepareJoy_Y: HAL_START_ADC(JOY_Y_PIN); break;
|
||||
case MeasureJoy_Y: ACCUMULATE_ADC(joystick.y); break;
|
||||
#endif
|
||||
|
||||
#if HAS_JOY_ADC_Z
|
||||
case PrepareJoy_Z: HAL_START_ADC(JOY_Z_PIN); break;
|
||||
case MeasureJoy_Z: ACCUMULATE_ADC(joystick.z); break;
|
||||
#endif
|
||||
|
||||
#if HAS_ADC_BUTTONS
|
||||
case Prepare_ADC_KEY: HAL_START_ADC(ADC_KEYPAD_PIN); break;
|
||||
case Measure_ADC_KEY:
|
||||
|
@ -92,44 +92,43 @@ typedef struct { float Kp, Ki, Kd, Kc; } PIDC_t;
|
||||
enum ADCSensorState : char {
|
||||
StartSampling,
|
||||
#if HAS_TEMP_ADC_0
|
||||
PrepareTemp_0,
|
||||
MeasureTemp_0,
|
||||
PrepareTemp_0, MeasureTemp_0,
|
||||
#endif
|
||||
#if HAS_HEATED_BED
|
||||
PrepareTemp_BED,
|
||||
MeasureTemp_BED,
|
||||
PrepareTemp_BED, MeasureTemp_BED,
|
||||
#endif
|
||||
#if HAS_TEMP_CHAMBER
|
||||
PrepareTemp_CHAMBER,
|
||||
MeasureTemp_CHAMBER,
|
||||
PrepareTemp_CHAMBER, MeasureTemp_CHAMBER,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_1
|
||||
PrepareTemp_1,
|
||||
MeasureTemp_1,
|
||||
PrepareTemp_1, MeasureTemp_1,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_2
|
||||
PrepareTemp_2,
|
||||
MeasureTemp_2,
|
||||
PrepareTemp_2, MeasureTemp_2,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_3
|
||||
PrepareTemp_3,
|
||||
MeasureTemp_3,
|
||||
PrepareTemp_3, MeasureTemp_3,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_4
|
||||
PrepareTemp_4,
|
||||
MeasureTemp_4,
|
||||
PrepareTemp_4, MeasureTemp_4,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_5
|
||||
PrepareTemp_5,
|
||||
MeasureTemp_5,
|
||||
PrepareTemp_5, MeasureTemp_5,
|
||||
#endif
|
||||
#if HAS_JOY_ADC_X
|
||||
PrepareJoy_X, MeasureJoy_X,
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Y
|
||||
PrepareJoy_Y, MeasureJoy_Y,
|
||||
#endif
|
||||
#if HAS_JOY_ADC_Z
|
||||
PrepareJoy_Z, MeasureJoy_Z,
|
||||
#endif
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
Prepare_FILWIDTH,
|
||||
Measure_FILWIDTH,
|
||||
Prepare_FILWIDTH, Measure_FILWIDTH,
|
||||
#endif
|
||||
#if HAS_ADC_BUTTONS
|
||||
Prepare_ADC_KEY,
|
||||
Measure_ADC_KEY,
|
||||
Prepare_ADC_KEY, Measure_ADC_KEY,
|
||||
#endif
|
||||
SensorsReady, // Temperatures ready. Delay the next round of readings to let ADC pins settle.
|
||||
StartupDelay // Startup, delay initial temp reading a tiny bit so the hardware can settle
|
||||
|
Reference in New Issue
Block a user