mirror of
https://github.com/wled/WLED.git
synced 2025-07-23 18:56:41 +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()
|
void handleButton()
|
||||||
{
|
{
|
||||||
static unsigned long lastRead = 0UL;
|
static unsigned long lastAnalogRead = 0UL;
|
||||||
static unsigned long lastRun = 0UL;
|
static unsigned long lastRun = 0UL;
|
||||||
unsigned long now = millis();
|
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;
|
lastRun = now;
|
||||||
|
|
||||||
for (uint8_t b=0; b<WLED_MAX_BUTTONS; b++) {
|
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 (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 (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);
|
handleAnalog(b);
|
||||||
lastRead = now;
|
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -325,6 +324,9 @@ void handleButton()
|
|||||||
shortPressAction(b);
|
shortPressAction(b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (now - lastAnalogRead > ANALOG_BTN_READ_CYCLE) {
|
||||||
|
lastAnalogRead = now;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If enabled, RMT idle level is set to HIGH when off
|
// If enabled, RMT idle level is set to HIGH when off
|
||||||
|
Loading…
x
Reference in New Issue
Block a user