123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /*
- Description: Control CAT EAR to run rainbow light show
- Please install library before compiling:
- FastLED: https://github.com/FastLED/FastLED
- */
- #include <M5Stack.h>
- #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<WS2811,Neopixel_PIN,GRB>(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++; }
- }
- }
|