+ unsigned char i;
+
+ if (++step >= (1 << PWM_STEP_SHIFT))
+ step = 0;
+
+ for (i = 0; i < N_PWMLEDS; i++)
+ if (pwm[i])
+ pwm_update_hw(i);
+}
+
+void pwm_disable_if_not_needed()
+{
+ if (channels_running)
+ return;
+
+ pll_enabled = 0;
+ DDRB &= ~(_BV(PB1) | _BV(PB3) | _BV(PB5));
+ PLLCSR &= ~(_BV(PLLE) | _BV(PCKE));
+
+ power_timer1_disable();