diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp index 0d64e86f5..3e890999d 100644 --- a/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp +++ b/Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp @@ -137,34 +137,28 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) { void HAL_timer_enable_interrupt(const uint8_t timer_num) { switch (timer_num) { - case STEP_TIMER_NUM: - timer_enable_irq(STEP_TIMER_DEV, STEP_TIMER_CHAN); - break; - case TEMP_TIMER_NUM: - timer_enable_irq(TEMP_TIMER_DEV, TEMP_TIMER_CHAN); - break; - default: - break; + case STEP_TIMER_NUM: ENABLE_STEPPER_DRIVER_INTERRUPT(); break; + case TEMP_TIMER_NUM: ENABLE_TEMPERATURE_INTERRUPT(); break; + default: break; } } void HAL_timer_disable_interrupt(const uint8_t timer_num) { switch (timer_num) { - case STEP_TIMER_NUM: - timer_disable_irq(STEP_TIMER_DEV, STEP_TIMER_CHAN); - break; - case TEMP_TIMER_NUM: - timer_disable_irq(TEMP_TIMER_DEV, TEMP_TIMER_CHAN); - break; - default: - break; + case STEP_TIMER_NUM: DISABLE_STEPPER_DRIVER_INTERRUPT(); break; + case TEMP_TIMER_NUM: DISABLE_TEMPERATURE_INTERRUPT(); break; + default: break; } } +static inline bool timer_irq_enabled(const timer_dev * const dev, const uint8 interrupt) { + return bool(*bb_perip(&(dev->regs).adv->DIER, interrupt)); +} + bool HAL_timer_interrupt_enabled(const uint8_t timer_num) { switch (timer_num) { - case STEP_TIMER_NUM: return bool(TIM_DIER(STEP_TIMER_DEV) & STEP_TIMER_CHAN); - case TEMP_TIMER_NUM: return bool(TIM_DIER(TEMP_TIMER_DEV) & TEMP_TIMER_CHAN); + case STEP_TIMER_NUM: return timer_irq_enabled(STEP_TIMER_DEV, STEP_TIMER_CHAN); + case TEMP_TIMER_NUM: return timer_irq_enabled(TEMP_TIMER_DEV, TEMP_TIMER_CHAN); } return false; }