Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FastLED/FastLED.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FastSPI_LED2.h3
-rw-r--r--chipsets.h9
-rw-r--r--examples/FirstLight/FirstLight.ino19
3 files changed, 28 insertions, 3 deletions
diff --git a/FastSPI_LED2.h b/FastSPI_LED2.h
index 08d3dc48..de228c53 100644
--- a/FastSPI_LED2.h
+++ b/FastSPI_LED2.h
@@ -24,6 +24,7 @@ enum EClocklessChipsets {
WS2811,
WS2812,
WS2812B,
+ WS2811_400,
NEOPIXEL,
UCS1903
};
@@ -100,6 +101,7 @@ public:
case WS2812B:
case NEOPIXEL:
case WS2811: return addLeds(new WS2811Controller800Khz<DATA_PIN>(), data, nLedsOrOffset, nLedsIfOffset);
+ case WS2811_400: return addLeds(new WS2811Controller400Khz<DATA_PIN>(), data, nLedsOrOffset, nLedsIfOffset);
}
}
@@ -116,6 +118,7 @@ public:
case WS2812B:
case NEOPIXEL:
case WS2811: return addLeds(new WS2811Controller800Khz<DATA_PIN, RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
+ case WS2811_400: return addLeds(new WS2811Controller400Khz<DATA_PIN, RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
}
}
diff --git a/chipsets.h b/chipsets.h
index 06fe0b87..1ee9af1c 100644
--- a/chipsets.h
+++ b/chipsets.h
@@ -242,7 +242,14 @@ class TM1809Controller800Khz : public ClocklessController<DATA_PIN, NS(350), NS(
template <uint8_t DATA_PIN, EOrder RGB_ORDER = RGB>
class WS2811Controller800Khz : public ClocklessController<DATA_PIN, NS(400), NS(400), NS(450), RGB_ORDER> {};
#if NO_TIME(400, 400, 450)
-#warning "No enough clock cycles available for the UCS103"
+#warning "No enough clock cycles available for the WS2811 (800khz)"
+#endif
+
+// WS2811@400khz - 800ns, 800ns, 900ns
+template <uint8_t DATA_PIN, EOrder RGB_ORDER = RGB>
+class WS2811Controller400Khz : public ClocklessController<DATA_PIN, NS(800), NS(800), NS(900), RGB_ORDER> {};
+#if NO_TIME(800, 800, 900)
+#warning "No enough clock cycles available for the WS2811 (400Khz)"
#endif
// 750NS, 750NS, 750NS
diff --git a/examples/FirstLight/FirstLight.ino b/examples/FirstLight/FirstLight.ino
index 28258b52..0939fe8e 100644
--- a/examples/FirstLight/FirstLight.ino
+++ b/examples/FirstLight/FirstLight.ino
@@ -7,7 +7,12 @@
//
// How many leds are in the strip?
-#define NUM_LEDS 40
+#define SWITCH 2
+#if SWITCH == 1
+#define NUM_LEDS 18 * 3
+#elif SWITCH == 2
+#define NUM_LEDS 75 * 4
+#endif
// Data pin that led data will be written out over
#define DATA_PIN 6
@@ -27,7 +32,17 @@ void setup() {
// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
- FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
+ #if SWITCH == 1
+ FastSPI_LED2.addLeds<WS2811, 16, GRB>(leds, NUM_LEDS/3);
+ FastSPI_LED2.addLeds<WS2811, 7, GRB>(leds+18, NUM_LEDS/3);
+ FastSPI_LED2.addLeds<WS2811, 19, GRB>(leds+36, NUM_LEDS/3);
+ #elif SWITCH == 2
+ FastSPI_LED2.addLeds<WS2811, 17, GRB>(leds, 75);
+ FastSPI_LED2.addLeds<WS2811, 18, GRB>(leds + 75, 75);
+ FastSPI_LED2.addLeds<WS2811, 7, GRB>(leds + 150, 75);
+ FastSPI_LED2.addLeds<WS2811, 8, GRB>(leds + 225, 75);
+ #endif
+ // FastLED.addLeds<WS2811, 8, RGB>(leds + 225, NUM_LEDS/4);
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);