// This is an prototype example for the ObjectFLED library for massive pins on // teensy40/41. #if !defined(__IMXRT1062__) // Teensy 4.0/4.1 only. #include "platforms/sketch_fake.hpp" #else #define FASTLED_USES_OBJECTFLED #include "FastLED.h" #include "fl/warn.h" using namespace fl; #define PIN_FIRST 3 #define PIN_SECOND 1 #define IS_RGBW false #define NUM_LEDS1 (22 * 22) #define NUM_LEDS2 1 CRGB leds1[NUM_LEDS1]; CRGB leds2[NUM_LEDS2]; void wait_for_serial() { uint32_t end_timeout = millis() + 3000; while (!Serial && end_timeout > millis()) {} } void print_startup_info() { Serial.println("Start"); Serial.print("*********************************************\n"); Serial.print("* TeensyParallel.ino *\n"); Serial.print("*********************************************\n"); Serial.printf( "CPU speed: %d MHz Temp: %.1f C %.1f F Serial baud: %.1f MHz\n", F_CPU_ACTUAL / 1000000, tempmonGetTemp(), tempmonGetTemp() * 9.0 / 5.0 + 32, 800000 * 1.6 / 1000000.0); } void dump_last_crash() { if (CrashReport) { Serial.println("CrashReport:"); Serial.println(CrashReport); } } void setup() { Serial.begin(115200); wait_for_serial(); dump_last_crash(); CLEDController& c1 = FastLED.addLeds(leds1, NUM_LEDS1); CLEDController& c2 = FastLED.addLeds(leds2, NUM_LEDS2); if (IS_RGBW) { c1.setRgbw(); c2.setRgbw(); } FastLED.setBrightness(8); } void fill(CRGB color) { for (int i = 0; i < NUM_LEDS1; i++) { leds1[i] = color; } for (int i = 0; i < NUM_LEDS2; i++) { leds2[i] = color; } } void blink(CRGB color, int times, int delay_ms = 250) { for (int i = 0; i < times; ++i) { fill(color); FastLED.show(); delay(delay_ms); fill(CRGB::Black); FastLED.show(); delay(delay_ms); } } void loop() { blink(CRGB::Red, 1); blink(CRGB::Green, 2); blink(CRGB::Blue, 3); delay(500); } #endif // __IMXRT1062__