diff --git a/src/main.cpp b/src/main.cpp index b34a91ce1a2c35a90516bb8f221d0b7e76671f5f..ceb3ca9797d71a4189b59e0f0aa6a075f2496db2 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); }