/* Description: Control CAT EAR to run rainbow light show Please install library before compiling: FastLED: https://github.com/FastLED/FastLED */ #include #include "FastLED.h" #define Neopixel_PIN 21 #define NUM_LEDS 118 CRGB leds[NUM_LEDS]; uint8_t gHue = 0; static TaskHandle_t FastLEDshowTaskHandle = 0; static TaskHandle_t userTaskHandle = 0; void setup() { M5.begin(); M5.Power.begin(); M5.Lcd.clear(BLACK); M5.Lcd.setTextColor(YELLOW); M5.Lcd.setTextSize(2); M5.Lcd.setCursor(60, 160); M5.Lcd.println("CatEar Example"); M5.Lcd.setTextColor(WHITE); // Neopixel initialization FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); FastLED.setBrightness(10); xTaskCreatePinnedToCore(FastLEDshowTask, "FastLEDshowTask", 2048, NULL, 2, NULL, 1); } void loop() { } void FastLEDshowESP32() { if (userTaskHandle == 0) { userTaskHandle = xTaskGetCurrentTaskHandle(); xTaskNotifyGive(FastLEDshowTaskHandle); const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 200 ); ulTaskNotifyTake(pdTRUE, xMaxBlockTime); userTaskHandle = 0; } } void FastLEDshowTask(void *pvParameters) { for(;;) { fill_rainbow(leds, NUM_LEDS, gHue, 7);// rainbow effect FastLED.show();// must be executed for neopixel becoming effective EVERY_N_MILLISECONDS( 20 ) { gHue++; } } }