From 236df5ee89ca5f182f735ed8df0b6d4a887adb4e Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Tue, 27 Apr 2021 15:37:41 +0200 Subject: [PATCH] don't use delay() add bootup LED check --- src/main.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index b34a91c..ceb3ca9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -82,13 +82,15 @@ void handleEvent(AceButton * /* button */, uint8_t eventType, } } -void setup() +void setupPins() { - Serial.begin(115200); - Keyboard.begin(); - pinMode(LED_BUILTIN_TX, INPUT); // switch off builtin LEDs - pinMode(LED_BUILTIN_RX, INPUT); // switch off builtin LEDs + pinMode(LED_BUILTIN_TX, INPUT); // switch off builtin TX LED + pinMode(LED_BUILTIN_RX, INPUT); // switch off builtin RX LED pinMode(BUTTON_PIN, INPUT_PULLUP); +} + +void setupButton() +{ ButtonConfig *buttonConfig = button.getButtonConfig(); buttonConfig->setEventHandler(handleEvent); buttonConfig->setFeature(ButtonConfig::kFeatureDoubleClick); @@ -96,18 +98,52 @@ void setup() buttonConfig->setFeature(ButtonConfig::kFeatureSuppressAfterLongPress); buttonConfig->setDoubleClickDelay(DOUBLECLICK_DELAY); buttonConfig->setLongPressDelay(DOUBLECLICK_DELAY + 1); +} + +void setupLEDs() +{ FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS); - delay(1000); + FastLED.setBrightness(MAX_BRIGHTNESS); + for (size_t i = 0; i < 3; i++) + { + for (size_t i = 0; i < NUM_LEDS; i++) + { + leds[i] = CRGB::Blue; + FastLED.show(); + delay(100); + leds[i] = CRGB::Black; + FastLED.show(); + } + } +} + +void setup() +{ + Serial.begin(115200); + delay(500); + Keyboard.begin(); + setupPins(); + setupButton(); + setupLEDs(); Serial.flush(); Serial.println(); Serial.println("Ultimute ready!"); Serial.println(); } -void loop() +void checkButton() { - button.check(); + static unsigned long prev = millis(); + unsigned long now = millis(); + if (now - prev > 5) + { + button.check(); + prev = now; + } +} +void handleButtonState() +{ if (muted) { FastLED.setBrightness(MIN_BRIGHTNESS); @@ -125,7 +161,11 @@ void loop() breath = map(breath, 0, 255, MIN_BRIGHTNESS, MAX_BRIGHTNESS); FastLED.setBrightness(breath); } +} +void loop() +{ + checkButton(); + handleButtonState(); FastLED.show(); - delay(5); } -- GitLab