static uint16_t targets[N_PWMLED_MODES] = {
MA_TO_ADC( 2),
- MA_TO_ADC( 8),
- MA_TO_ADC(14),
+ MA_TO_ADC(10),
MA_TO_ADC(20),
};
state = ST_OFF;
}
-void pwmled_set_mode(unsigned char mode)
+void pwmled_set_target(unsigned char mode)
+{
+ target = targets[mode];
+ mode_changed = 1;
+}
+
+void pwmled_on_off(unsigned char mode)
{
if (!ST_CAN_SET_MODE(state))
return;
if (mode) {
- target = targets[mode - 1];
state = ST_ON;
mode_changed = 1;
+ need_pwmled_adc = 1;
pwm_set(pwm_val);
} else {
state = ST_OFF;
+ need_pwmled_adc = 0;
pwm_off();
}
}
log_byte(0xF1);
log_flush();
+
+ set_error(ERR_PWMLED);
}
if (pwm_val >= PWM_MAX
|| (pwm_val > (2*PWM_MAX/3) && adcval < 0x08)) {
pwmled_err();
+ need_pwmled_adc = 0;
return;
}