mirror of
https://github.com/wled/WLED.git
synced 2025-04-24 14:57:18 +00:00
Multiple analog button fix for #3549
This commit is contained in:
parent
3d6f25a9d3
commit
4457067045
@ -226,11 +226,11 @@ void handleAnalog(uint8_t b)
|
||||
|
||||
void handleButton()
|
||||
{
|
||||
static unsigned long lastRead = 0UL;
|
||||
static unsigned long lastAnalogRead = 0UL;
|
||||
static unsigned long lastRun = 0UL;
|
||||
unsigned long now = millis();
|
||||
|
||||
if (strip.isUpdating() && (now - lastRun < 400)) return; // don't interfere with strip update (unless strip is updating continuously, e.g. very long strips)
|
||||
if (strip.isUpdating() && (now - lastRun < ANALOG_BTN_READ_CYCLE+1)) return; // don't interfere with strip update (unless strip is updating continuously, e.g. very long strips)
|
||||
lastRun = now;
|
||||
|
||||
for (uint8_t b=0; b<WLED_MAX_BUTTONS; b++) {
|
||||
@ -243,9 +243,8 @@ void handleButton()
|
||||
if (usermods.handleButton(b)) continue; // did usermod handle buttons
|
||||
|
||||
if (buttonType[b] == BTN_TYPE_ANALOG || buttonType[b] == BTN_TYPE_ANALOG_INVERTED) { // button is not a button but a potentiometer
|
||||
if (now - lastRead > ANALOG_BTN_READ_CYCLE) {
|
||||
if (now - lastAnalogRead > ANALOG_BTN_READ_CYCLE) {
|
||||
handleAnalog(b);
|
||||
lastRead = now;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@ -325,6 +324,9 @@ void handleButton()
|
||||
shortPressAction(b);
|
||||
}
|
||||
}
|
||||
if (now - lastAnalogRead > ANALOG_BTN_READ_CYCLE) {
|
||||
lastAnalogRead = now;
|
||||
}
|
||||
}
|
||||
|
||||
// If enabled, RMT idle level is set to HIGH when off
|
||||
|
Loading…
x
Reference in New Issue
Block a user