From 463bb2145d7e207eb1727873c5f73c6435ebc2b7 Mon Sep 17 00:00:00 2001 From: Brian Bulkowski Date: Mon, 29 Jun 2020 19:14:56 -0700 Subject: [PATCH] Update to a better default test pattern --- main/main.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index 4bbc9e3..4dacf7e 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -76,6 +76,62 @@ void blinkLeds_interesting(void *pvParameters){ }; +// Going to use the ESP timer system to attempt to get a frame rate. +// According to the documentation, this is a fairly high priority, +// and one should attempt to do minimal work - such as dispatching a message to a queue. +// at first, let's try just blasting pixels on it. + +// Target frames per second +#define FASTFADE_FPS 30 + +typedef struct { + CHSV color; +} fastfade_t; + +static void _fastfade_cb(void *param){ + + fastfade_t *ff = (fastfade_t *)param; + + ff->color.hue++; + + if (ff->color.hue % 10 == 0) { + printf("fast hsv fade h: %d s: %d v: %d\n",ff->color.hue,ff->color.s, ff->color.v); + } + + fill_solid(leds,NUM_LEDS,ff->color); + + FastLED.show(); + +}; + + +static void fastfade(void *pvParameters){ + + fastfade_t ff_t = { + .color = CHSV(0/*hue*/,255/*sat*/,255/*value*/) + }; + + esp_timer_create_args_t timer_create_args = { + .callback = _fastfade_cb, + .arg = (void *) &ff_t, + .dispatch_method = ESP_TIMER_TASK, + .name = "fastfade_timer" + }; + + esp_timer_handle_t timer_h; + + esp_timer_create(&timer_create_args, &timer_h); + + esp_timer_start_periodic(timer_h, 1000000L / FASTFADE_FPS ); + + // suck- just trying this + while(1){ + + vTaskDelay(1000 / portTICK_PERIOD_MS); + }; + +} + #define N_COLORS 17 CRGB colors[N_COLORS] = { CRGB::AliceBlue, @@ -163,9 +219,11 @@ void app_main() { printf(" set max power\n"); // I have a 2A power supply, although it's 12v - FastLED.setMaxPowerInVoltsAndMilliamps(5,2000); + FastLED.setMaxPowerInVoltsAndMilliamps(12,2000); // change the task below to one of the functions above to try different patterns printf("create task for led blinking\n"); - xTaskCreatePinnedToCore(&blinkLeds_simple, "blinkLeds", 4000, NULL, 5, NULL, 0); + //xTaskCreatePinnedToCore(&blinkLeds_simple, "blinkLeds", 4000, NULL, 5, NULL, 0); + + xTaskCreatePinnedToCore(&fastfade, "blinkLeds", 4000, NULL, 5, NULL, 0); }