From b0dd645e27219f8a593f7c5af1339cebffeebfe8 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Tue, 7 Aug 2018 16:58:37 -0700 Subject: [PATCH] Retune neopixel timings on SAMD51. They were too slow. Fixes #1083 --- ports/atmel-samd/common-hal/neopixel_write/__init__.c | 8 ++++---- 1 file 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 5530d04085..31de2c207a 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 } }