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:
authorDaniel Garcia <danielgarcia@gmail.com>2014-10-02 05:34:24 +0400
committerDaniel Garcia <danielgarcia@gmail.com>2014-10-02 05:34:24 +0400
commitf3191249c73eae66975bfb3a3ba7c4921bc375d3 (patch)
tree133806487990b7f176daf82e675ecfed296998fc
parentc4f3db5deb09e20702b0d16460efebc6f3a31119 (diff)
Tweaking WS2811 timings
-rw-r--r--chipsets.h2
-rw-r--r--clockless_trinket.h6
2 files changed, 7 insertions, 1 deletions
diff --git a/chipsets.h b/chipsets.h
index f0770409..679dd0f2 100644
--- a/chipsets.h
+++ b/chipsets.h
@@ -374,7 +374,7 @@ class LPD1886Controller1250Khz : public ClocklessController<DATA_PIN, 2 * FMUL,
// WS2811@800khz 2 clocks, 5 clocks, 3 clocks
template <uint8_t DATA_PIN, EOrder RGB_ORDER = RGB>
-class WS2811Controller800Khz : public ClocklessController<DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER> {};
+class WS2811Controller800Khz : public ClocklessController<DATA_PIN, 3 * FMUL, 4 * FMUL, 3 * FMUL, RGB_ORDER> {};
template <uint8_t DATA_PIN, EOrder RGB_ORDER = RGB>
class WS2811Controller400Khz : public ClocklessController<DATA_PIN, 4 * FMUL, 10 * FMUL, 6 * FMUL, RGB_ORDER> {};
diff --git a/clockless_trinket.h b/clockless_trinket.h
index 4d93d091..4f7b7db3 100644
--- a/clockless_trinket.h
+++ b/clockless_trinket.h
@@ -32,6 +32,12 @@ template<int _LOOP, int PAD> inline void _dc_AVR(register uint8_t & loopvar) {
template<int CYCLES> __attribute__((always_inline)) inline void _dc(register uint8_t & loopvar) {
_dc_AVR<CYCLES/6,CYCLES%6>(loopvar);
}
+template<> __attribute__((always_inline)) inline void _dc<-6>(register uint8_t & loopvar) {}
+template<> __attribute__((always_inline)) inline void _dc<-5>(register uint8_t & loopvar) {}
+template<> __attribute__((always_inline)) inline void _dc<-4>(register uint8_t & loopvar) {}
+template<> __attribute__((always_inline)) inline void _dc<-3>(register uint8_t & loopvar) {}
+template<> __attribute__((always_inline)) inline void _dc<-2>(register uint8_t & loopvar) {}
+template<> __attribute__((always_inline)) inline void _dc<-1>(register uint8_t & loopvar) {}
template<> __attribute__((always_inline)) inline void _dc<0>(register uint8_t & loopvar) {}
template<> __attribute__((always_inline)) inline void _dc<1>(register uint8_t & loopvar) {asm __volatile__("mov r0,r0":::);}
template<> __attribute__((always_inline)) inline void _dc<2>(register uint8_t & loopvar) {asm __volatile__("rjmp .+0":::);}