diff --git a/Src/driver_spindles.c b/Src/driver_spindles.c index 8f1fb2a..99afab0 100644 --- a/Src/driver_spindles.c +++ b/Src/driver_spindles.c @@ -285,7 +285,7 @@ inline static void spindle1_on (spindle_ptrs_t *spindle) inline static void spindle1_dir (bool ccw) { #ifdef SPINDLE1_DIRECTION_PIN - DIGITAL_OUT(SPINDLE_DIRECTION_PORT, SPINDLE_DIRECTION_BIT, ccw ^ spindle_config->cfg.invert.ccw); + DIGITAL_OUT(SPINDLE1_DIRECTION_PORT, SPINDLE1_DIRECTION_BIT, ccw ^ spindle_config->cfg.invert.ccw); #else UNUSED(ccw); #endif @@ -294,7 +294,7 @@ inline static void spindle1_dir (bool ccw) // Start or stop spindle static void spindle1SetState (spindle_ptrs_t *spindle, spindle_state_t state, float rpm) { - if (!state.on) + if (!state.on || rpm == 0.0f) spindle1_off(); else { spindle1_dir(state.ccw); diff --git a/Src/pwm.c b/Src/pwm.c index 28c4a50..7d9a8a7 100644 --- a/Src/pwm.c +++ b/Src/pwm.c @@ -116,7 +116,7 @@ bool pwm_is_available (GPIO_TypeDef *port, uint8_t pin) return pwm->ccr != pwm_claimed[i].ccr; } while(i); - return !timer_is_claimed(pwm->timer); + return pwm && !timer_is_claimed(pwm->timer); } const pwm_signal_t *pwm_claim (GPIO_TypeDef *port, uint8_t pin) diff --git a/Src/timers.c b/Src/timers.c index e52f34d..7098049 100644 --- a/Src/timers.c +++ b/Src/timers.c @@ -310,7 +310,7 @@ uint32_t timer_clk_enable (TIM_TypeDef *timer) __HAL_RCC_TIM13_CLK_ENABLE(); break; #endif -#ifdef TIM7 +#ifdef TIM14 case (uint32_t)TIM14: __HAL_RCC_TIM14_CLK_ENABLE(); break;