mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2026-01-08 23:57:44 -07:00
🧑💻 Omit unused ADC pins (#28007)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
parent
93783e993b
commit
7086ca632f
7 changed files with 159 additions and 86 deletions
|
|
@ -242,12 +242,13 @@ void MarlinHAL::adc_init() {
|
|||
TERN_(HAS_TEMP_ADC_5, adc1_set_attenuation(get_channel(TEMP_5_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_6, adc2_set_attenuation(get_channel(TEMP_6_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_7, adc3_set_attenuation(get_channel(TEMP_7_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_HEATED_BED, adc1_set_attenuation(get_channel(TEMP_BED_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_CHAMBER, adc1_set_attenuation(get_channel(TEMP_CHAMBER_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_PROBE, adc1_set_attenuation(get_channel(TEMP_PROBE_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_COOLER, adc1_set_attenuation(get_channel(TEMP_COOLER_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_BOARD, adc1_set_attenuation(get_channel(TEMP_BOARD_PIN), ADC_ATTEN_11db));
|
||||
TERN_(FILAMENT_WIDTH_SENSOR, adc1_set_attenuation(get_channel(FILWIDTH_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_BED, adc1_set_attenuation(get_channel(TEMP_BED_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_CHAMBER, adc1_set_attenuation(get_channel(TEMP_CHAMBER_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_PROBE, adc1_set_attenuation(get_channel(TEMP_PROBE_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_COOLER, adc1_set_attenuation(get_channel(TEMP_COOLER_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_TEMP_ADC_BOARD, adc1_set_attenuation(get_channel(TEMP_BOARD_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_FILWIDTH_ADC, adc1_set_attenuation(get_channel(FILWIDTH_PIN), ADC_ATTEN_11db));
|
||||
TERN_(HAS_FILWIDTH2_ADC, adc1_set_attenuation(get_channel(FILWIDTH2_PIN), ADC_ATTEN_11db));
|
||||
|
||||
// Note that adc2 is shared with the WiFi module, which has higher priority, so the conversion may fail.
|
||||
// That's why we're not setting it up here.
|
||||
|
|
|
|||
|
|
@ -61,7 +61,8 @@
|
|||
#define GET_COOLER_ADC() TERN(HAS_TEMP_ADC_COOLER, PIN_TO_ADC(TEMP_COOLER_PIN), -1)
|
||||
#define GET_BOARD_ADC() TERN(HAS_TEMP_ADC_BOARD, PIN_TO_ADC(TEMP_BOARD_PIN), -1)
|
||||
#define GET_SOC_ADC() TERN(HAS_TEMP_ADC_BOARD, PIN_TO_ADC(TEMP_BOARD_PIN), -1)
|
||||
#define GET_FILAMENT_WIDTH_ADC() TERN(FILAMENT_WIDTH_SENSOR, PIN_TO_ADC(FILWIDTH_PIN), -1)
|
||||
#define GET_FILAMENT_WIDTH_ADC() TERN(HAS_FILWIDTH_ADC, PIN_TO_ADC(FILWIDTH_PIN), -1)
|
||||
#define GET_FILAMENT2_WIDTH_ADC() TERN(HAS_FILWIDTH2_ADC, PIN_TO_ADC(FILWIDTH2_PIN), -1)
|
||||
#define GET_BUTTONS_ADC() TERN(HAS_ADC_BUTTONS, PIN_TO_ADC(ADC_KEYPAD_PIN), -1)
|
||||
#define GET_JOY_ADC_X() TERN(HAS_JOY_ADC_X, PIN_TO_ADC(JOY_X_PIN), -1)
|
||||
#define GET_JOY_ADC_Y() TERN(HAS_JOY_ADC_Y, PIN_TO_ADC(JOY_Y_PIN), -1)
|
||||
|
|
@ -77,7 +78,7 @@
|
|||
|| GET_PROBE_ADC() == n \
|
||||
|| GET_COOLER_ADC() == n \
|
||||
|| GET_BOARD_ADC() == n || GET_SOC_ADC() == n \
|
||||
|| GET_FILAMENT_WIDTH_ADC() == n \
|
||||
|| GET_FILAMENT_WIDTH_ADC() == n || GET_FILAMENT2_WIDTH_ADC() == n \
|
||||
|| GET_BUTTONS_ADC() == n \
|
||||
|| GET_JOY_ADC_X() == n || GET_JOY_ADC_Y() == n || GET_JOY_ADC_Z() == n \
|
||||
|| GET_POWERMON_ADC_CURRENT() == n || GET_POWERMON_ADC_VOLTS() == n \
|
||||
|
|
@ -146,6 +147,9 @@ enum ADCIndex {
|
|||
#if GET_FILAMENT_WIDTH_ADC() == 0
|
||||
FILWIDTH,
|
||||
#endif
|
||||
#if GET_FILAMENT2_WIDTH_ADC() == 0
|
||||
FILWIDTH2,
|
||||
#endif
|
||||
#if GET_BUTTONS_ADC() == 0
|
||||
ADC_KEY,
|
||||
#endif
|
||||
|
|
@ -212,6 +216,9 @@ enum ADCIndex {
|
|||
#if GET_FILAMENT_WIDTH_ADC() == 1
|
||||
FILWIDTH,
|
||||
#endif
|
||||
#if GET_FILAMENT2_WIDTH_ADC() == 1
|
||||
FILWIDTH2,
|
||||
#endif
|
||||
#if GET_BUTTONS_ADC() == 1
|
||||
ADC_KEY,
|
||||
#endif
|
||||
|
|
@ -334,6 +341,9 @@ enum ADCIndex {
|
|||
#if GET_FILAMENT_WIDTH_ADC() == 0
|
||||
FILWIDTH_PIN,
|
||||
#endif
|
||||
#if GET_FILAMENT2_WIDTH_ADC() == 0
|
||||
FILWIDTH2_PIN,
|
||||
#endif
|
||||
#if GET_BUTTONS_ADC() == 0
|
||||
ADC_KEYPAD_PIN,
|
||||
#endif
|
||||
|
|
@ -400,6 +410,9 @@ enum ADCIndex {
|
|||
#if GET_FILAMENT_WIDTH_ADC() == 1
|
||||
FILWIDTH_PIN,
|
||||
#endif
|
||||
#if GET_FILAMENT2_WIDTH_ADC() == 1
|
||||
FILWIDTH2_PIN,
|
||||
#endif
|
||||
#if GET_BUTTONS_ADC() == 1
|
||||
ADC_KEYPAD_PIN,
|
||||
#endif
|
||||
|
|
@ -471,6 +484,9 @@ enum ADCIndex {
|
|||
#if GET_FILAMENT_WIDTH_ADC() == 0
|
||||
{ PIN_TO_INPUTCTRL(FILWIDTH_PIN) },
|
||||
#endif
|
||||
#if GET_FILAMENT2_WIDTH_ADC() == 0
|
||||
{ PIN_TO_INPUTCTRL(FILWIDTH2_PIN) },
|
||||
#endif
|
||||
#if GET_BUTTONS_ADC() == 0
|
||||
{ PIN_TO_INPUTCTRL(ADC_KEYPAD_PIN) },
|
||||
#endif
|
||||
|
|
@ -543,6 +559,9 @@ enum ADCIndex {
|
|||
#if GET_FILAMENT_WIDTH_ADC() == 1
|
||||
{ PIN_TO_INPUTCTRL(FILWIDTH_PIN) },
|
||||
#endif
|
||||
#if GET_FILAMENT2_WIDTH_ADC() == 1
|
||||
{ PIN_TO_INPUTCTRL(FILWIDTH2_PIN) },
|
||||
#endif
|
||||
#if GET_BUTTONS_ADC() == 1
|
||||
{ PIN_TO_INPUTCTRL(ADC_KEYPAD_PIN) },
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -134,27 +134,28 @@ uint16_t MarlinHAL::adc_result;
|
|||
// Init the AD in continuous capture mode
|
||||
void MarlinHAL::adc_init() {
|
||||
static const uint8_t adc_pins[] = {
|
||||
OPTITEM(HAS_TEMP_ADC_0, TEMP_0_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_1, TEMP_1_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_2, TEMP_2_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_3, TEMP_3_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_4, TEMP_4_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_5, TEMP_5_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_6, TEMP_6_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_7, TEMP_7_PIN)
|
||||
OPTITEM(HAS_HEATED_BED, TEMP_BED_PIN)
|
||||
OPTITEM(HAS_TEMP_CHAMBER, TEMP_CHAMBER_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_PROBE, TEMP_PROBE_PIN)
|
||||
OPTITEM(HAS_TEMP_COOLER, TEMP_COOLER_PIN)
|
||||
OPTITEM(HAS_TEMP_BOARD, TEMP_BOARD_PIN)
|
||||
OPTITEM(HAS_TEMP_SOC, TEMP_SOC_PIN)
|
||||
OPTITEM(FILAMENT_WIDTH_SENSOR, FILWIDTH_PIN)
|
||||
OPTITEM(HAS_ADC_BUTTONS, ADC_KEYPAD_PIN)
|
||||
OPTITEM(HAS_JOY_ADC_X, JOY_X_PIN)
|
||||
OPTITEM(HAS_JOY_ADC_Y, JOY_Y_PIN)
|
||||
OPTITEM(HAS_JOY_ADC_Z, JOY_Z_PIN)
|
||||
OPTITEM(POWER_MONITOR_CURRENT, POWER_MONITOR_CURRENT_PIN)
|
||||
OPTITEM(POWER_MONITOR_VOLTAGE, POWER_MONITOR_VOLTAGE_PIN)
|
||||
OPTITEM(HAS_TEMP_ADC_0, TEMP_0_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_1, TEMP_1_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_2, TEMP_2_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_3, TEMP_3_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_4, TEMP_4_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_5, TEMP_5_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_6, TEMP_6_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_7, TEMP_7_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_BED, TEMP_BED_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_CHAMBER, TEMP_CHAMBER_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_PROBE, TEMP_PROBE_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_COOLER, TEMP_COOLER_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_BOARD, TEMP_BOARD_PIN )
|
||||
OPTITEM(HAS_TEMP_ADC_SOC, TEMP_SOC_PIN )
|
||||
OPTITEM(HAS_FILWIDTH_ADC, FILWIDTH_PIN )
|
||||
OPTITEM(HAS_FILWIDTH2_ADC, FILWIDTH2_PIN )
|
||||
OPTITEM(HAS_ADC_BUTTONS, ADC_KEYPAD_PIN )
|
||||
OPTITEM(HAS_JOY_ADC_X, JOY_X_PIN )
|
||||
OPTITEM(HAS_JOY_ADC_Y, JOY_Y_PIN )
|
||||
OPTITEM(HAS_JOY_ADC_Z, JOY_Z_PIN )
|
||||
OPTITEM(POWER_MONITOR_CURRENT, POWER_MONITOR_CURRENT_PIN)
|
||||
OPTITEM(POWER_MONITOR_VOLTAGE, POWER_MONITOR_VOLTAGE_PIN)
|
||||
};
|
||||
static STM32ADC adc(ADC1);
|
||||
// Configure the ADC
|
||||
|
|
@ -175,27 +176,28 @@ void MarlinHAL::adc_start(const pin_t pin) {
|
|||
ADCIndex pin_index;
|
||||
switch (pin) {
|
||||
default: return;
|
||||
_TCASE(HAS_TEMP_ADC_0, TEMP_0_PIN, TEMP_0)
|
||||
_TCASE(HAS_TEMP_ADC_1, TEMP_1_PIN, TEMP_1)
|
||||
_TCASE(HAS_TEMP_ADC_2, TEMP_2_PIN, TEMP_2)
|
||||
_TCASE(HAS_TEMP_ADC_3, TEMP_3_PIN, TEMP_3)
|
||||
_TCASE(HAS_TEMP_ADC_4, TEMP_4_PIN, TEMP_4)
|
||||
_TCASE(HAS_TEMP_ADC_5, TEMP_5_PIN, TEMP_5)
|
||||
_TCASE(HAS_TEMP_ADC_6, TEMP_6_PIN, TEMP_6)
|
||||
_TCASE(HAS_TEMP_ADC_7, TEMP_7_PIN, TEMP_7)
|
||||
_TCASE(HAS_HEATED_BED, TEMP_BED_PIN, TEMP_BED)
|
||||
_TCASE(HAS_TEMP_CHAMBER, TEMP_CHAMBER_PIN, TEMP_CHAMBER)
|
||||
_TCASE(HAS_TEMP_ADC_PROBE, TEMP_PROBE_PIN, TEMP_PROBE)
|
||||
_TCASE(HAS_TEMP_COOLER, TEMP_COOLER_PIN, TEMP_COOLER)
|
||||
_TCASE(HAS_TEMP_BOARD, TEMP_BOARD_PIN, TEMP_BOARD)
|
||||
_TCASE(HAS_TEMP_SOC, TEMP_SOC_PIN, TEMP_SOC)
|
||||
_TCASE(HAS_JOY_ADC_X, JOY_X_PIN, JOY_X)
|
||||
_TCASE(HAS_JOY_ADC_Y, JOY_Y_PIN, JOY_Y)
|
||||
_TCASE(HAS_JOY_ADC_Z, JOY_Z_PIN, JOY_Z)
|
||||
_TCASE(FILAMENT_WIDTH_SENSOR, FILWIDTH_PIN, FILWIDTH)
|
||||
_TCASE(HAS_ADC_BUTTONS, ADC_KEYPAD_PIN, ADC_KEY)
|
||||
_TCASE(POWER_MONITOR_CURRENT, POWER_MONITOR_CURRENT_PIN, POWERMON_CURRENT)
|
||||
_TCASE(POWER_MONITOR_VOLTAGE, POWER_MONITOR_VOLTAGE_PIN, POWERMON_VOLTAGE)
|
||||
_TCASE(HAS_TEMP_ADC_0, TEMP_0_PIN, TEMP_0 )
|
||||
_TCASE(HAS_TEMP_ADC_1, TEMP_1_PIN, TEMP_1 )
|
||||
_TCASE(HAS_TEMP_ADC_2, TEMP_2_PIN, TEMP_2 )
|
||||
_TCASE(HAS_TEMP_ADC_3, TEMP_3_PIN, TEMP_3 )
|
||||
_TCASE(HAS_TEMP_ADC_4, TEMP_4_PIN, TEMP_4 )
|
||||
_TCASE(HAS_TEMP_ADC_5, TEMP_5_PIN, TEMP_5 )
|
||||
_TCASE(HAS_TEMP_ADC_6, TEMP_6_PIN, TEMP_6 )
|
||||
_TCASE(HAS_TEMP_ADC_7, TEMP_7_PIN, TEMP_7 )
|
||||
_TCASE(HAS_TEMP_ADC_BED, TEMP_BED_PIN, TEMP_BED )
|
||||
_TCASE(HAS_TEMP_ADC_CHAMBER, TEMP_CHAMBER_PIN, TEMP_CHAMBER )
|
||||
_TCASE(HAS_TEMP_ADC_PROBE, TEMP_PROBE_PIN, TEMP_PROBE )
|
||||
_TCASE(HAS_TEMP_ADC_COOLER, TEMP_COOLER_PIN, TEMP_COOLER )
|
||||
_TCASE(HAS_TEMP_ADC_BOARD, TEMP_BOARD_PIN, TEMP_BOARD )
|
||||
_TCASE(HAS_TEMP_ADC_SOC, TEMP_SOC_PIN, TEMP_SOC )
|
||||
_TCASE(HAS_FILWIDTH_ADC, FILWIDTH_PIN, FILWIDTH )
|
||||
_TCASE(HAS_FILWIDTH2_ADC, FILWIDTH2_PIN, FILWIDTH2 )
|
||||
_TCASE(HAS_ADC_BUTTONS, ADC_KEYPAD_PIN, ADC_KEY )
|
||||
_TCASE(HAS_JOY_ADC_X, JOY_X_PIN, JOY_X )
|
||||
_TCASE(HAS_JOY_ADC_Y, JOY_Y_PIN, JOY_Y )
|
||||
_TCASE(HAS_JOY_ADC_Z, JOY_Z_PIN, JOY_Z )
|
||||
_TCASE(POWER_MONITOR_CURRENT, POWER_MONITOR_CURRENT_PIN, POWERMON_CURRENT)
|
||||
_TCASE(POWER_MONITOR_VOLTAGE, POWER_MONITOR_VOLTAGE_PIN, POWERMON_VOLTAGE)
|
||||
}
|
||||
adc_result = (adc_results[(int)pin_index] & 0xFFF) >> (12 - HAL_ADC_RESOLUTION); // shift out unused bits
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ enum ADCIndex : uint8_t {
|
|||
OPTITEM(HAS_TEMP_ADC_COOLER, TEMP_COOLER )
|
||||
OPTITEM(HAS_TEMP_ADC_BOARD, TEMP_BOARD )
|
||||
OPTITEM(HAS_TEMP_ADC_SOC, TEMP_SOC )
|
||||
OPTITEM(FILAMENT_WIDTH_SENSOR, FILWIDTH )
|
||||
OPTITEM(HAS_FILWIDTH_ADC, FILWIDTH )
|
||||
OPTITEM(HAS_FILWIDTH2_ADC, FILWIDTH2 )
|
||||
OPTITEM(HAS_ADC_BUTTONS, ADC_KEY )
|
||||
OPTITEM(HAS_JOY_ADC_X, JOY_X )
|
||||
OPTITEM(HAS_JOY_ADC_Y, JOY_Y )
|
||||
|
|
|
|||
|
|
@ -2490,6 +2490,59 @@
|
|||
//
|
||||
// ADC Temp Sensors (Thermistor or Thermocouple with amplifier ADC interface)
|
||||
//
|
||||
|
||||
#if TEMP_SENSOR(0)
|
||||
#define HAS_TEMP_HOTEND 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(BED)
|
||||
#define HAS_HEATED_BED 1
|
||||
#define HAS_TEMP_BED 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(CHAMBER)
|
||||
#define HAS_TEMP_CHAMBER 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(PROBE)
|
||||
#define HAS_TEMP_PROBE 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(COOLER)
|
||||
#define HAS_TEMP_COOLER 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(BOARD)
|
||||
#define HAS_TEMP_BOARD 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(SOC)
|
||||
#define HAS_TEMP_SOC 1
|
||||
#endif
|
||||
#if TEMP_SENSOR(REDUNDANT)
|
||||
#define HAS_TEMP_REDUNDANT 1
|
||||
#endif
|
||||
|
||||
// Unused ADC pins can be omitted
|
||||
#if ANY(KEEP_ADC_PINS_AROUND, PINS_DEBUGGING, MARLIN_DEV_MODE)
|
||||
#if !HAS_TEMP_HOTEND
|
||||
#undef TEMP_0_PIN
|
||||
#endif
|
||||
#if !HAS_HEATED_BED
|
||||
#undef TEMP_BED_PIN
|
||||
#endif
|
||||
#if !HAS_TEMP_CHAMBER
|
||||
#undef TEMP_CHAMBER_PIN
|
||||
#endif
|
||||
#if !HAS_TEMP_PROBE
|
||||
#undef TEMP_PROBE_PIN
|
||||
#endif
|
||||
#if !HAS_TEMP_COOLER
|
||||
#undef TEMP_COOLER_PIN
|
||||
#endif
|
||||
#if !HAS_TEMP_BOARD
|
||||
#undef TEMP_BOARD_PIN
|
||||
#endif
|
||||
#if DISABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#undef FILWIDTH_PIN
|
||||
#undef FILWIDTH2_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define HAS_ADC_TEST(P) (TEMP_SENSOR(P) && PIN_EXISTS(TEMP_##P) && !TEMP_SENSOR_IS_MAX_TC(P) && !TEMP_SENSOR_##P##_IS_DUMMY)
|
||||
#if HOTENDS > 0 && HAS_ADC_TEST(0)
|
||||
#define HAS_TEMP_ADC_0 1
|
||||
|
|
@ -2515,11 +2568,8 @@
|
|||
#if HOTENDS > 7 && HAS_ADC_TEST(7)
|
||||
#define HAS_TEMP_ADC_7 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_BED
|
||||
#define HAS_HEATED_BED 1
|
||||
#if HAS_ADC_TEST(BED)
|
||||
#define HAS_TEMP_ADC_BED 1
|
||||
#endif
|
||||
#if HAS_HEATED_BED && HAS_ADC_TEST(BED)
|
||||
#define HAS_TEMP_ADC_BED 1
|
||||
#endif
|
||||
#if HAS_ADC_TEST(PROBE)
|
||||
#define HAS_TEMP_ADC_PROBE 1
|
||||
|
|
@ -2539,31 +2589,11 @@
|
|||
#if HAS_ADC_TEST(REDUNDANT)
|
||||
#define HAS_TEMP_ADC_REDUNDANT 1
|
||||
#endif
|
||||
|
||||
#define HAS_TEMP(N) (TEMP_SENSOR_IS_MAX_TC(N) || HAS_TEMP_ADC_##N || TEMP_SENSOR_##N##_IS_DUMMY)
|
||||
#if HAS_HOTEND && HAS_TEMP(0)
|
||||
#define HAS_TEMP_HOTEND 1
|
||||
#if PIN_EXISTS(FILWIDTH_PIN)
|
||||
#define HAS_FILWIDTH_ADC 1
|
||||
#endif
|
||||
#if HAS_TEMP(BED)
|
||||
#define HAS_TEMP_BED 1
|
||||
#endif
|
||||
#if HAS_TEMP(CHAMBER)
|
||||
#define HAS_TEMP_CHAMBER 1
|
||||
#endif
|
||||
#if HAS_TEMP(PROBE)
|
||||
#define HAS_TEMP_PROBE 1
|
||||
#endif
|
||||
#if HAS_TEMP(COOLER)
|
||||
#define HAS_TEMP_COOLER 1
|
||||
#endif
|
||||
#if HAS_TEMP(BOARD)
|
||||
#define HAS_TEMP_BOARD 1
|
||||
#endif
|
||||
#if HAS_TEMP(SOC)
|
||||
#define HAS_TEMP_SOC 1
|
||||
#endif
|
||||
#if HAS_TEMP(REDUNDANT)
|
||||
#define HAS_TEMP_REDUNDANT 1
|
||||
#if PIN_EXISTS(FILWIDTH2_PIN)
|
||||
#define HAS_FILWIDTH2_ADC 1
|
||||
#endif
|
||||
|
||||
#if ENABLED(JOYSTICK)
|
||||
|
|
@ -2581,7 +2611,9 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
// Heaters
|
||||
//
|
||||
// Heater Outputs
|
||||
//
|
||||
#if PIN_EXISTS(HEATER_0)
|
||||
#define HAS_HEATER_0 1
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -3220,7 +3220,8 @@ void Temperature::init() {
|
|||
TERN_(HAS_TEMP_ADC_BOARD, hal.adc_enable(TEMP_BOARD_PIN));
|
||||
TERN_(HAS_TEMP_ADC_SOC, hal.adc_enable(TEMP_SOC_PIN));
|
||||
TERN_(HAS_TEMP_ADC_REDUNDANT, hal.adc_enable(TEMP_REDUNDANT_PIN));
|
||||
TERN_(FILAMENT_WIDTH_SENSOR, hal.adc_enable(FILWIDTH_PIN));
|
||||
TERN_(HAS_FILWIDTH_ADC, hal.adc_enable(FILWIDTH_PIN));
|
||||
TERN_(HAS_FILWIDTH2_ADC, hal.adc_enable(FILWIDTH2_PIN));
|
||||
TERN_(HAS_ADC_BUTTONS, hal.adc_enable(ADC_KEYPAD_PIN));
|
||||
TERN_(POWER_MONITOR_CURRENT, hal.adc_enable(POWER_MONITOR_CURRENT_PIN));
|
||||
TERN_(POWER_MONITOR_VOLTAGE, hal.adc_enable(POWER_MONITOR_VOLTAGE_PIN));
|
||||
|
|
@ -4517,11 +4518,25 @@ void Temperature::isr() {
|
|||
case MeasureTemp_7: ACCUMULATE_ADC(temp_hotend[7]); break;
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#if HAS_FILWIDTH_ADC
|
||||
case Prepare_FILWIDTH: hal.adc_start(FILWIDTH_PIN); break;
|
||||
case Measure_FILWIDTH:
|
||||
if (!hal.adc_ready()) next_sensor_state = adc_sensor_state; // Redo this state
|
||||
else filwidth.accumulate(hal.adc_value());
|
||||
if (!hal.adc_ready())
|
||||
next_sensor_state = adc_sensor_state; // Redo this state
|
||||
else {
|
||||
TERN_(FILAMENT_WIDTH_SENSOR, filwidth.accumulate(hal.adc_value()));
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if HAS_FILWIDTH2_ADC
|
||||
case Prepare_FILWIDTH2: hal.adc_start(FILWIDTH2_PIN); break;
|
||||
case Measure_FILWIDTH2:
|
||||
if (!hal.adc_ready())
|
||||
next_sensor_state = adc_sensor_state; // Redo this state
|
||||
else {
|
||||
TERN_(FILAMENT_WIDTH_SENSOR, filwidth.accumulate(hal.adc_value()));
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -118,9 +118,12 @@ enum ADCSensorState : char {
|
|||
#if HAS_JOY_ADC_Z
|
||||
PrepareJoy_Z, MeasureJoy_Z,
|
||||
#endif
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#if HAS_FILWIDTH_ADC
|
||||
Prepare_FILWIDTH, Measure_FILWIDTH,
|
||||
#endif
|
||||
#if HAS_FILWIDTH2_ADC
|
||||
Prepare_FILWIDTH2, Measure_FILWIDTH2,
|
||||
#endif
|
||||
#if ENABLED(POWER_MONITOR_CURRENT)
|
||||
Prepare_POWER_MONITOR_CURRENT,
|
||||
Measure_POWER_MONITOR_CURRENT,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue