summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2018-08-07 16:58:37 -0700
committerScott Shawcroft <scott@tannewt.org>2018-08-07 16:58:37 -0700
commitb0dd645e27219f8a593f7c5af1339cebffeebfe8 (patch)
tree8b08332d26a882e449696edfa542a84760792107
parentf5fab358aab883ef21b30fce10ac0b34dc2f6210 (diff)
Retune neopixel timings on SAMD51. They were too slow.
Fixes #1083
-rw-r--r--ports/atmel-samd/common-hal/neopixel_write/__init__.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ports/atmel-samd/common-hal/neopixel_write/__init__.c b/ports/atmel-samd/common-hal/neopixel_write/__init__.c
index 5530d0408..31de2c207 100644
--- a/ports/atmel-samd/common-hal/neopixel_write/__init__.c
+++ b/ports/atmel-samd/common-hal/neopixel_write/__init__.c
@@ -111,14 +111,14 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
#ifdef SAMD51
delay_cycles(3);
#endif
- if(p & bitMask) {
+ if((p & bitMask) != 0) {
// This is the high delay unique to a one bit.
// For the SK6812 its 0.3us
#ifdef SAMD21
asm("nop; nop; nop; nop; nop; nop; nop;");
#endif
#ifdef SAMD51
- delay_cycles(11);
+ delay_cycles(3);
#endif
*clr = pinMask;
} else {
@@ -140,7 +140,7 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
asm("nop; nop; nop; nop; nop;");
#endif
#ifdef SAMD51
- delay_cycles(20);
+ delay_cycles(4);
#endif
} else {
if(ptr >= end) break;
@@ -151,7 +151,7 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
// above operations take.
// For the SK6812 its 0.6us +- 0.15us
#ifdef SAMD51
- delay_cycles(15);
+ delay_cycles(3);
#endif
}
}