32 #if defined(ARDUINO_ARCH_NRF52840)
34 const uint16_t c_dmaBytesPerDataByte = 8 *
sizeof(nrf_pwm_values_common_t);
39 class NeoNrf52xPwmSpeedWs2811
42 const static uint32_t CountTop = 20UL;
43 const static nrf_pwm_values_common_t Bit0 = 5 | 0x8000;
44 const static nrf_pwm_values_common_t Bit1 = 14 | 0x8000;
45 const static nrf_pwm_values_common_t BitReset = 0x8000;
46 const static uint16_t CountReset = 240;
47 const static PinStatus IdleLevel = LOW;
50 class NeoNrf52xPwmSpeedWs2812x
53 const static uint32_t CountTop = 20UL;
54 const static nrf_pwm_values_common_t Bit0 = 6 | 0x8000;
55 const static nrf_pwm_values_common_t Bit1 = 13 | 0x8000;
56 const static nrf_pwm_values_common_t BitReset = 0x8000;
57 const static uint32_t CountReset = 240 ;
58 const static PinStatus IdleLevel = LOW;
61 class NeoNrf52xPwmSpeedSk6812
64 const static uint32_t CountTop = 20UL;
65 const static nrf_pwm_values_common_t Bit0 = 6 | 0x8000;
66 const static nrf_pwm_values_common_t Bit1 = 13 | 0x8000;
67 const static nrf_pwm_values_common_t BitReset = 0x8000;
68 const static uint32_t CountReset = 64;
69 const static PinStatus IdleLevel = LOW;
72 class NeoNrf52xPwmSpeedTm1814
75 const static uint32_t CountTop = 20UL;
76 const static nrf_pwm_values_common_t Bit0 = 5;
77 const static nrf_pwm_values_common_t Bit1 = 12;
78 const static nrf_pwm_values_common_t BitReset = 0x0000;
79 const static uint32_t CountReset = 160;
80 const static PinStatus IdleLevel = HIGH;
83 class NeoNrf52xPwmSpeedTm1829
86 const static uint32_t CountTop = 20UL;
87 const static nrf_pwm_values_common_t Bit0 = 5;
88 const static nrf_pwm_values_common_t Bit1 = 13 | 0x8000;
89 const static nrf_pwm_values_common_t BitReset = 0x0000;
90 const static uint32_t CountReset = 160;
91 const static PinStatus IdleLevel = HIGH;
94 class NeoNrf52xPwmSpeedTm1914
97 const static uint32_t CountTop = 20UL;
98 const static nrf_pwm_values_common_t Bit0 = 5;
99 const static nrf_pwm_values_common_t Bit1 = 12;
100 const static nrf_pwm_values_common_t BitReset = 0x0000;
101 const static uint32_t CountReset = 160;
102 const static PinStatus IdleLevel = HIGH;
105 class NeoNrf52xPwmSpeed800Kbps
108 const static uint32_t CountTop = 20UL;
109 const static nrf_pwm_values_common_t Bit0 = 6 | 0x8000;
110 const static nrf_pwm_values_common_t Bit1 = 13 | 0x8000;
111 const static nrf_pwm_values_common_t BitReset = 0x8000;
112 const static uint32_t CountReset = 40;
113 const static PinStatus IdleLevel = LOW;
116 class NeoNrf52xPwmSpeed400Kbps
119 const static uint32_t CountTop = 40UL;
120 const static nrf_pwm_values_common_t Bit0 = 13 | 0x8000;
121 const static nrf_pwm_values_common_t Bit1 = 26 | 0x8000;
122 const static nrf_pwm_values_common_t BitReset = 0x8000;
123 const static uint16_t CountReset = 20;
124 const static PinStatus IdleLevel = LOW;
128 class NeoNrf52xPwmSpeedApa106
131 const static uint32_t CountTop = 26UL;
132 const static nrf_pwm_values_common_t Bit0 = 6 | 0x8000;
133 const static nrf_pwm_values_common_t Bit1 = 21 | 0x8000;
134 const static nrf_pwm_values_common_t BitReset = 0x8000;
135 const static uint32_t CountReset = 40;
136 const static PinStatus IdleLevel = LOW;
139 class NeoNrf52xPwmSpeedTx1812
142 const static uint32_t CountTop = 14UL;
143 const static nrf_pwm_values_common_t Bit0 = 5 | 0x8000;
144 const static nrf_pwm_values_common_t Bit1 = 10 | 0x8000;
145 const static nrf_pwm_values_common_t BitReset = 0x8000;
146 const static uint32_t CountReset = 228;
147 const static PinStatus IdleLevel = LOW;
150 class NeoNrf52xPwmInvertedSpeedWs2811
153 const static uint32_t CountTop = 20UL;
154 const static nrf_pwm_values_common_t Bit0 = 5;
155 const static nrf_pwm_values_common_t Bit1 = 14;
156 const static nrf_pwm_values_common_t BitReset = 0x0000;
157 const static uint16_t CountReset = 240;
158 const static PinStatus IdleLevel = HIGH;
161 class NeoNrf52xPwmInvertedSpeedWs2812x
164 const static uint32_t CountTop = 20UL;
165 const static nrf_pwm_values_common_t Bit0 = 6;
166 const static nrf_pwm_values_common_t Bit1 = 13;
167 const static nrf_pwm_values_common_t BitReset = 0x0000;
168 const static uint32_t CountReset = 240;
169 const static PinStatus IdleLevel = HIGH;
172 class NeoNrf52xPwmInvertedSpeedSk6812
175 const static uint32_t CountTop = 20UL;
176 const static nrf_pwm_values_common_t Bit0 = 6;
177 const static nrf_pwm_values_common_t Bit1 = 13;
178 const static nrf_pwm_values_common_t BitReset = 0x0000;
179 const static uint32_t CountReset = 64;
180 const static PinStatus IdleLevel = HIGH;
183 class NeoNrf52xPwmInvertedSpeedTm1814
186 const static uint32_t CountTop = 20UL;
187 const static nrf_pwm_values_common_t Bit0 = 5 | 0x8000;
188 const static nrf_pwm_values_common_t Bit1 = 12 | 0x8000;
189 const static nrf_pwm_values_common_t BitReset = 0x8000;
190 const static uint32_t CountReset = 160;
191 const static PinStatus IdleLevel = LOW;
194 class NeoNrf52xPwmInvertedSpeedTm1829
197 const static uint32_t CountTop = 20UL;
198 const static nrf_pwm_values_common_t Bit0 = 5 | 0x8000;
199 const static nrf_pwm_values_common_t Bit1 = 13;
200 const static nrf_pwm_values_common_t BitReset = 0x8000;
201 const static uint32_t CountReset = 160;
202 const static PinStatus IdleLevel = LOW;
205 class NeoNrf52xPwmInvertedSpeedTm1914
208 const static uint32_t CountTop = 20UL;
209 const static nrf_pwm_values_common_t Bit0 = 5 | 0x8000;
210 const static nrf_pwm_values_common_t Bit1 = 12 | 0x8000;
211 const static nrf_pwm_values_common_t BitReset = 0x8000;
212 const static uint32_t CountReset = 160;
213 const static PinStatus IdleLevel = LOW;
216 class NeoNrf52xPwmInvertedSpeed800Kbps
219 const static uint32_t CountTop = 20UL;
220 const static nrf_pwm_values_common_t Bit0 = 6;
221 const static nrf_pwm_values_common_t Bit1 = 13;
222 const static nrf_pwm_values_common_t BitReset = 0x0000;
223 const static uint32_t CountReset = 40;
224 const static PinStatus IdleLevel = HIGH;
227 class NeoNrf52xPwmInvertedSpeed400Kbps
230 const static uint32_t CountTop = 40UL;
231 const static nrf_pwm_values_common_t Bit0 = 13;
232 const static nrf_pwm_values_common_t Bit1 = 26;
233 const static nrf_pwm_values_common_t BitReset = 0x0000;
234 const static uint16_t CountReset = 20;
235 const static PinStatus IdleLevel = HIGH;
238 class NeoNrf52xPwmInvertedSpeedApa106
241 const static uint32_t CountTop = 26UL;
242 const static nrf_pwm_values_common_t Bit0 = 6;
243 const static nrf_pwm_values_common_t Bit1 = 21;
244 const static nrf_pwm_values_common_t BitReset = 0x0000;
245 const static uint32_t CountReset = 40;
246 const static PinStatus IdleLevel = HIGH;
249 class NeoNrf52xPwmInvertedSpeedTx1812
252 const static uint32_t CountTop = 14UL;
253 const static nrf_pwm_values_common_t Bit0 = 5;
254 const static nrf_pwm_values_common_t Bit1 = 10;
255 const static nrf_pwm_values_common_t BitReset = 0x0000;
256 const static uint32_t CountReset = 228;
257 const static PinStatus IdleLevel = HIGH;
265 inline static NRF_PWM_Type* Pwm()
276 inline static NRF_PWM_Type* Pwm()
287 inline static NRF_PWM_Type* Pwm()
293 #if defined(NRF_PWM3)
299 inline static NRF_PWM_Type* Pwm()
312 NRF_PWM_Type* PWM[] = {
323 inline NRF_PWM_Type* Pwm()
const
334 template<
typename T_SPEED,
typename T_BUS>
class NeoNrf52xMethodBase
339 NeoNrf52xMethodBase(uint8_t pin, uint16_t pixelCount,
size_t elementSize,
size_t settingsSize) :
340 _sizeData(pixelCount * elementSize + settingsSize),
346 NeoNrf52xMethodBase(uint8_t pin, uint16_t pixelCount,
size_t elementSize,
size_t settingsSize,
NeoBusChannel channel) :
347 _sizeData(pixelCount* elementSize + settingsSize),
354 ~NeoNrf52xMethodBase()
356 while (!IsReadyToUpdate())
363 pinMode(_pin, INPUT);
369 bool IsReadyToUpdate()
const
371 return (_bus.Pwm()->EVENTS_STOPPED);
376 digitalWrite(_pin, T_SPEED::IdleLevel);
394 while (!IsReadyToUpdate())
409 uint8_t* getData()
const
414 size_t getDataSize()
const
419 void applySettings([[maybe_unused]]
const SettingsObject& settings)
424 const size_t _sizeData;
429 size_t _dmaBufferSize;
430 nrf_pwm_values_common_t* _dmaBuffer;
434 pinMode(_pin, OUTPUT);
436 _data =
static_cast<uint8_t*
>(malloc(_sizeData));
439 _dmaBufferSize = c_dmaBytesPerDataByte * _sizeData +
sizeof(nrf_pwm_values_common_t);
440 _dmaBuffer =
static_cast<nrf_pwm_values_common_t*
>(malloc(_dmaBufferSize));
446 _bus.Pwm()->PSEL.OUT[0] = digitalPinToPinName(_pin);
447 _bus.Pwm()->PSEL.OUT[1] = NC;
448 _bus.Pwm()->PSEL.OUT[2] = NC;
449 _bus.Pwm()->PSEL.OUT[3] = NC;
451 _bus.Pwm()->ENABLE = 1;
452 _bus.Pwm()->MODE = NRF_PWM_MODE_UP;
453 _bus.Pwm()->PRESCALER = NRF_PWM_CLK_16MHz;
454 _bus.Pwm()->COUNTERTOP = T_SPEED::CountTop;
455 _bus.Pwm()->LOOP = 1;
456 _bus.Pwm()->DECODER = NRF_PWM_LOAD_COMMON;
460 _bus.Pwm()->SEQ[0].PTR =
reinterpret_cast<uint32_t
>(_dmaBuffer);
461 _bus.Pwm()->SEQ[0].CNT = _dmaBufferSize /
sizeof(nrf_pwm_values_common_t);
462 _bus.Pwm()->SEQ[0].REFRESH = 0;
463 _bus.Pwm()->SEQ[0].ENDDELAY = T_SPEED::CountReset;
466 _bus.Pwm()->SEQ[1].PTR =
reinterpret_cast<uint32_t
>(_dmaBuffer + (_bus.Pwm()->SEQ[0].CNT - 1));
467 _bus.Pwm()->SEQ[1].CNT = 1;
468 _bus.Pwm()->SEQ[1].REFRESH = 0;
469 _bus.Pwm()->SEQ[1].ENDDELAY = 0;
472 _bus.Pwm()->SHORTS = PWM_SHORTS_LOOPSDONE_STOP_Msk;
473 _bus.Pwm()->INTEN = 0;
480 _bus.Pwm()->ENABLE = 0;
481 _bus.Pwm()->PSEL.OUT[0] = NC;
486 nrf_pwm_values_common_t* pDma = _dmaBuffer;
487 nrf_pwm_values_common_t* pDmaEnd = _dmaBuffer + (_dmaBufferSize /
sizeof(nrf_pwm_values_common_t));
488 uint8_t* pEnd = _data + _sizeData;
490 for (uint8_t* pData = _data; pData < pEnd; pData++)
492 uint8_t data = *pData;
494 for (uint8_t bit = 0; bit < 8; bit++)
496 *(pDma++) = (data & 0x80) ? T_SPEED::Bit1 : T_SPEED::Bit0;
503 while (pDma < pDmaEnd)
505 *(pDma++) = T_SPEED::BitReset;
509 void dmaResetEvents()
511 _bus.Pwm()->EVENTS_LOOPSDONE = 0;
512 _bus.Pwm()->EVENTS_SEQEND[0] = 0;
513 _bus.Pwm()->EVENTS_SEQEND[1] = 0;
514 _bus.Pwm()->EVENTS_STOPPED = 0;
520 _bus.Pwm()->TASKS_SEQSTART[0] = 1;
525 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2811, NeoNrf52xPwmN> NeoNrf52xPwmNWs2811Method;
526 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwmN> NeoNrf52xPwmNWs2812xMethod;
527 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwmN> NeoNrf52xPwmNWs2816Method;
528 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedSk6812, NeoNrf52xPwmN> NeoNrf52xPwmNSk6812Method;
529 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1814, NeoNrf52xPwmN> NeoNrf52xPwmNTm1814Method;
530 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1829, NeoNrf52xPwmN> NeoNrf52xPwmNTm1829Method;
531 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1914, NeoNrf52xPwmN> NeoNrf52xPwmNTm1914Method;
532 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTx1812, NeoNrf52xPwmN> NeoNrf52xPwmNTx1812Method;
533 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedApa106, NeoNrf52xPwmN> NeoNrf52xPwmNApa106Method;
534 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed800Kbps, NeoNrf52xPwmN> NeoNrf52xPwmN800KbpsMethod;
535 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed400Kbps, NeoNrf52xPwmN> NeoNrf52xPwmN400KbpsMethod;
537 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2811, NeoNrf52xPwm0> NeoNrf52xPwm0Ws2811Method;
538 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm0> NeoNrf52xPwm0Ws2812xMethod;
539 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm0> NeoNrf52xPwm0Ws2816Method;
540 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedSk6812, NeoNrf52xPwm0> NeoNrf52xPwm0Sk6812Method;
541 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1814, NeoNrf52xPwm0> NeoNrf52xPwm0Tm1814Method;
542 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1829, NeoNrf52xPwm0> NeoNrf52xPwm0Tm1829Method;
543 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1914, NeoNrf52xPwm0> NeoNrf52xPwm0Tm1914Method;
544 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTx1812, NeoNrf52xPwm0> NeoNrf52xPwm0Tx1812Method;
545 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedApa106, NeoNrf52xPwm0> NeoNrf52xPwm0Apa106Method;
546 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed800Kbps, NeoNrf52xPwm0> NeoNrf52xPwm0800KbpsMethod;
547 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed400Kbps, NeoNrf52xPwm0> NeoNrf52xPwm0400KbpsMethod;
549 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2811, NeoNrf52xPwm1> NeoNrf52xPwm1Ws2811Method;
550 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm1> NeoNrf52xPwm1Ws2812xMethod;
551 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm1> NeoNrf52xPwm1Ws2816Method;
552 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedSk6812, NeoNrf52xPwm1> NeoNrf52xPwm1Sk6812Method;
553 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1814, NeoNrf52xPwm1> NeoNrf52xPwm1Tm1814Method;
554 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1829, NeoNrf52xPwm1> NeoNrf52xPwm1Tm1829Method;
555 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1914, NeoNrf52xPwm1> NeoNrf52xPwm1Tm1914Method;
556 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTx1812, NeoNrf52xPwm1> NeoNrf52xPwm1Tx1812Method;
557 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedApa106, NeoNrf52xPwm1> NeoNrf52xPwm1Apa106Method;
558 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed800Kbps, NeoNrf52xPwm1> NeoNrf52xPwm1800KbpsMethod;
559 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed400Kbps, NeoNrf52xPwm1> NeoNrf52xPwm1400KbpsMethod;
561 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2811, NeoNrf52xPwm2> NeoNrf52xPwm2Ws2811Method;
562 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm2> NeoNrf52xPwm2Ws2812xMethod;
563 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm2> NeoNrf52xPwm2Ws2816Method;
564 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedSk6812, NeoNrf52xPwm2> NeoNrf52xPwm2Sk6812Method;
565 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1814, NeoNrf52xPwm2> NeoNrf52xPwm2Tm1814Method;
566 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1829, NeoNrf52xPwm2> NeoNrf52xPwm2Tm1829Method;
567 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1914, NeoNrf52xPwm2> NeoNrf52xPwm2Tm1914Method;
568 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTx1812, NeoNrf52xPwm2> NeoNrf52xPwm2Tx1812Method;
569 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedApa106, NeoNrf52xPwm2> NeoNrf52xPwm2Apa106Method;
570 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed800Kbps, NeoNrf52xPwm2> NeoNrf52xPwm2800KbpsMethod;
571 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed400Kbps, NeoNrf52xPwm2> NeoNrf52xPwm2400KbpsMethod;
573 #if defined(NRF_PWM3)
574 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2811, NeoNrf52xPwm3> NeoNrf52xPwm3Ws2811Method;
575 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm3> NeoNrf52xPwm3Ws2812xMethod;
576 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedWs2812x, NeoNrf52xPwm3> NeoNrf52xPwm3Ws2816Method;
577 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedSk6812, NeoNrf52xPwm3> NeoNrf52xPwm3Sk6812Method;
578 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1814, NeoNrf52xPwm3> NeoNrf52xPwm3Tm1814Method;
579 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1829, NeoNrf52xPwm3> NeoNrf52xPwm3Tm1829Method;
580 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTm1914, NeoNrf52xPwm3> NeoNrf52xPwm3Tm1914Method;
581 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedTx1812, NeoNrf52xPwm3> NeoNrf52xPwm3Tx1812Method;
582 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeedApa106, NeoNrf52xPwm3> NeoNrf52xPwm3Apa106Method;
583 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed800Kbps, NeoNrf52xPwm3> NeoNrf52xPwm3800KbpsMethod;
584 typedef NeoNrf52xMethodBase<NeoNrf52xPwmSpeed400Kbps, NeoNrf52xPwm3> NeoNrf52xPwm3400KbpsMethod;
588 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2811, NeoNrf52xPwmN> NeoNrf52xPwmNWs2811InvertedMethod;
589 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwmN> NeoNrf52xPwmNWs2812xInvertedMethod;
590 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwmN> NeoNrf52xPwmNWs2816InvertedMethod;
591 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedSk6812, NeoNrf52xPwmN> NeoNrf52xPwmNSk6812InvertedMethod;
592 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1814, NeoNrf52xPwmN> NeoNrf52xPwmNTm1814InvertedMethod;
593 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1829, NeoNrf52xPwmN> NeoNrf52xPwmNTm1829InvertedMethod;
594 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1914, NeoNrf52xPwmN> NeoNrf52xPwmNTm1914InvertedMethod;
595 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTx1812, NeoNrf52xPwmN> NeoNrf52xPwmNTx1812InvertedMethod;
596 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedApa106, NeoNrf52xPwmN> NeoNrf52xPwmNApa106InvertedMethod;
597 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed800Kbps, NeoNrf52xPwmN> NeoNrf52xPwmN800KbpsInvertedMethod;
598 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed400Kbps, NeoNrf52xPwmN> NeoNrf52xPwmN400KbpsInvertedMethod;
600 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2811, NeoNrf52xPwm0> NeoNrf52xPwm0Ws2811InvertedMethod;
601 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm0> NeoNrf52xPwm0Ws2812xInvertedMethod;
602 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm0> NeoNrf52xPwm0Ws2816InvertedMethod;
603 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedSk6812, NeoNrf52xPwm0> NeoNrf52xPwm0Sk6812InvertedMethod;
604 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1814, NeoNrf52xPwm0> NeoNrf52xPwm0Tm1814InvertedMethod;
605 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1829, NeoNrf52xPwm0> NeoNrf52xPwm0Tm1829InvertedMethod;
606 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1914, NeoNrf52xPwm0> NeoNrf52xPwm0Tm1914InvertedMethod;
607 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTx1812, NeoNrf52xPwm0> NeoNrf52xPwm0Tx1812InvertedMethod;
608 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedApa106, NeoNrf52xPwm0> NeoNrf52xPwm0Apa106InvertedMethod;
609 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed800Kbps, NeoNrf52xPwm0> NeoNrf52xPwm0800KbpsInvertedMethod;
610 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed400Kbps, NeoNrf52xPwm0> NeoNrf52xPwm0400KbpsInvertedMethod;
612 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2811, NeoNrf52xPwm1> NeoNrf52xPwm1Ws2811InvertedMethod;
613 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm1> NeoNrf52xPwm1Ws2812xInvertedMethod;
614 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm1> NeoNrf52xPwm1Ws2816InvertedMethod;
615 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedSk6812, NeoNrf52xPwm1> NeoNrf52xPwm1Sk6812InvertedMethod;
616 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1814, NeoNrf52xPwm1> NeoNrf52xPwm1Tm1814InvertedMethod;
617 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1829, NeoNrf52xPwm1> NeoNrf52xPwm1Tm1829InvertedMethod;
618 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1914, NeoNrf52xPwm1> NeoNrf52xPwm1Tm1914InvertedMethod;
619 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTx1812, NeoNrf52xPwm1> NeoNrf52xPwm1Tx1812InvertedMethod;
620 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedApa106, NeoNrf52xPwm1> NeoNrf52xPwm1Apa106InvertedMethod;
621 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed800Kbps, NeoNrf52xPwm1> NeoNrf52xPwm1800KbpsInvertedMethod;
622 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed400Kbps, NeoNrf52xPwm1> NeoNrf52xPwm1400KbpsInvertedMethod;
624 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2811, NeoNrf52xPwm2> NeoNrf52xPwm2Ws2811InvertedMethod;
625 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm2> NeoNrf52xPwm2Ws2812xInvertedMethod;
626 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm2> NeoNrf52xPwm2Ws2816InvertedMethod;
627 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedSk6812, NeoNrf52xPwm2> NeoNrf52xPwm2Sk6812InvertedMethod;
628 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1814, NeoNrf52xPwm2> NeoNrf52xPwm2Tm1814InvertedMethod;
629 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1829, NeoNrf52xPwm2> NeoNrf52xPwm2Tm1829InvertedMethod;
630 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1914, NeoNrf52xPwm2> NeoNrf52xPwm2Tm1914InvertedMethod;
631 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTx1812, NeoNrf52xPwm2> NeoNrf52xPwm2Tx1812InvertedMethod;
632 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedApa106, NeoNrf52xPwm2> NeoNrf52xPwm2Apa106InvertedMethod;
633 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed800Kbps, NeoNrf52xPwm2> NeoNrf52xPwm2800KbpsInvertedMethod;
634 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed400Kbps, NeoNrf52xPwm2> NeoNrf52xPwm2400KbpsInvertedMethod;
636 #if defined(NRF_PWM3)
637 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2811, NeoNrf52xPwm3> NeoNrf52xPwm3Ws2811InvertedMethod;
638 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm3> NeoNrf52xPwm3Ws2812xInvertedMethod;
639 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedWs2812x, NeoNrf52xPwm3> NeoNrf52xPwm3Ws2816InvertedMethod;
640 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedSk6812, NeoNrf52xPwm3> NeoNrf52xPwm3Sk6812InvertedMethod;
641 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1814, NeoNrf52xPwm3> NeoNrf52xPwm3Tm1814InvertedMethod;
642 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1829, NeoNrf52xPwm3> NeoNrf52xPwm3Tm1829InvertedMethod;
643 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTm1914, NeoNrf52xPwm3> NeoNrf52xPwm3Tm1914InvertedMethod;
644 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedTx1812, NeoNrf52xPwm3> NeoNrf52xPwm3Tx1812InvertedMethod;
645 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeedApa106, NeoNrf52xPwm3> NeoNrf52xPwm3Apa106InvertedMethod;
646 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed800Kbps, NeoNrf52xPwm3> NeoNrf52xPwm3800KbpsInvertedMethod;
647 typedef NeoNrf52xMethodBase<NeoNrf52xPwmInvertedSpeed400Kbps, NeoNrf52xPwm3> NeoNrf52xPwm3400KbpsInvertedMethod;
651 typedef NeoNrf52xPwm2Ws2812xMethod NeoWs2813Method;
652 typedef NeoNrf52xPwm2Ws2812xMethod NeoWs2812xMethod;
653 typedef NeoNrf52xPwm2800KbpsMethod NeoWs2812Method;
654 typedef NeoNrf52xPwm2Ws2812xMethod NeoWs2811Method;
655 typedef NeoNrf52xPwm2Ws2812xMethod NeoWs2816Method;
656 typedef NeoNrf52xPwm2Sk6812Method NeoSk6812Method;
657 typedef NeoNrf52xPwm2Tm1814Method NeoTm1814Method;
658 typedef NeoNrf52xPwm2Tm1829Method NeoTm1829Method;
659 typedef NeoNrf52xPwm2Tm1914Method NeoTm1914Method;
660 typedef NeoNrf52xPwm2Tx1812Method NeoTx1812Method;
661 typedef NeoNrf52xPwm2Sk6812Method NeoLc8812Method;
662 typedef NeoNrf52xPwm2Apa106Method NeoApa106Method;
664 typedef NeoNrf52xPwm2Ws2812xMethod Neo800KbpsMethod;
665 typedef NeoNrf52xPwm2400KbpsMethod Neo400KbpsMethod;
667 typedef NeoNrf52xPwm2Ws2812xInvertedMethod NeoWs2813InvertedMethod;
668 typedef NeoNrf52xPwm2Ws2812xInvertedMethod NeoWs2812xInvertedMethod;
669 typedef NeoNrf52xPwm2Ws2812xInvertedMethod NeoWs2811InvertedMethod;
670 typedef NeoNrf52xPwm2800KbpsInvertedMethod NeoWs2812InvertedMethod;
671 typedef NeoNrf52xPwm2Ws2812xInvertedMethod NeoWs2816InvertedMethod;
672 typedef NeoNrf52xPwm2Sk6812InvertedMethod NeoSk6812InvertedMethod;
673 typedef NeoNrf52xPwm2Tm1814InvertedMethod NeoTm1814InvertedMethod;
674 typedef NeoNrf52xPwm2Tm1829InvertedMethod NeoTm1829InvertedMethod;
675 typedef NeoNrf52xPwm2Tm1914InvertedMethod NeoTm1914InvertedMethod;
676 typedef NeoNrf52xPwm2Tx1812InvertedMethod NeoTx1812InvertedMethod;
677 typedef NeoNrf52xPwm2Sk6812InvertedMethod NeoLc8812InvertedMethod;
678 typedef NeoNrf52xPwm2Apa106InvertedMethod NeoApa106InvertedMethod;
680 typedef NeoNrf52xPwm2Ws2812xInvertedMethod Neo800KbpsInvertedMethod;
681 typedef NeoNrf52xPwm2400KbpsInvertedMethod Neo400KbpsInvertedMethod;
NeoBusChannel
Definition: NeoBusChannel.h:12
Definition: NeoSettings.h:29