* Setting commands don't update if no data is sent
* Didn't understand how pin mapping worked duh. Fixed.
This commit is contained in:
George 2020-05-19 21:43:11 +10:00
parent bd33574ee7
commit fb179c27af
2 changed files with 23 additions and 12 deletions

View File

@ -1893,24 +1893,27 @@ void CmndDriver(void)
void CmndSetLedPwmOff(void)
{
if (XdrvMailbox.payload < 0) {
if (XdrvMailbox.data_len > 0) {
if (XdrvMailbox.payload < 0) {
Settings.ledpwm_off = 0;
} else if (XdrvMailbox.payload > Settings.pwm_range) {
} else if (XdrvMailbox.payload > Settings.pwm_range) {
Settings.ledpwm_off = Settings.pwm_range;
} else {
Settings.ledpwm_off = XdrvMailbox.payload;
}
} else {
Settings.ledpwm_off = XdrvMailbox.payload;
}
ResponseCmndNumber(Settings.ledpwm_off);
}
void CmndSetLedPwmOn(void)
{
if (XdrvMailbox.payload < 0) {
if (XdrvMailbox.data_len > 0) {
if (XdrvMailbox.payload < 0) {
Settings.ledpwm_on = 0;
} else if (XdrvMailbox.payload > Settings.pwm_range) {
} else if (XdrvMailbox.payload > Settings.pwm_range) {
Settings.ledpwm_on = Settings.pwm_range;
} else {
Settings.ledpwm_on = XdrvMailbox.payload;
} else {
Settings.ledpwm_on = XdrvMailbox.payload;
}
}
ResponseCmndNumber(Settings.ledpwm_on);
}

View File

@ -353,11 +353,19 @@ void SetLedPowerIdx(uint32_t led, uint32_t state)
}
uint16_t led_pwm_set = 0;
if (bitRead(led_inverted, led)) {
led_pwm_set = state ? Settings.pwm_range - Settings.ledpwm_on : Settings.pwm_range - Settings.ledpwm_off;
if (state) {
led_pwm_set = Settings.pwm_range - Settings.ledpwm_on;
} else {
led_pwm_set = Settings.pwm_range - Settings.ledpwm_off;
}
} else {
led_pwm_set = state ? Settings.ledpwm_on : Settings.ledpwm_off;
if (state) {
led_pwm_set = Settings.ledpwm_on;
} else {
led_pwm_set = Settings.ledpwm_off;
}
}
analogWrite(led, led_pwm_set);
analogWrite(Pin(GPIO_LED1, led), led_pwm_set);
}
#ifdef USE_BUZZER
if (led == 0) {