diff --git a/firmware/controllers/system/pwm_generator_logic.cpp b/firmware/controllers/system/pwm_generator_logic.cpp index b7e5532a26..7d8aea18ef 100644 --- a/firmware/controllers/system/pwm_generator_logic.cpp +++ b/firmware/controllers/system/pwm_generator_logic.cpp @@ -75,7 +75,7 @@ void SimplePwm::setSimplePwmDutyCycle(float dutyCycle) { warning(CUSTOM_ERR_6579, "spwd:dutyCycle %.2f", dutyCycle); return; } - if (dutyCycle == 0.0f) { + if (dutyCycle == 0.0f && stateChangeCallback != NULL) { /** * set the pin low just to be super sure * this custom handling of zero value comes from CJ125 heater code diff --git a/firmware/controllers/system/pwm_generator_logic.h b/firmware/controllers/system/pwm_generator_logic.h index 1f5351c3c4..e8eb333a8b 100644 --- a/firmware/controllers/system/pwm_generator_logic.h +++ b/firmware/controllers/system/pwm_generator_logic.h @@ -96,7 +96,7 @@ public: /** * this main callback is invoked when it's time to switch level on any of the output channels */ - pwm_gen_callback *stateChangeCallback; + pwm_gen_callback *stateChangeCallback = NULL; private: /** * float value of PWM period