circuitpython/ports/atmel-samd/common-hal
Jeff Epler 1905d0746d samd: neopixel: Fix neopixels after #2297
This adapts the "inline assembler" code from the UF2 bootloader, which
in turn is said to be adapted from the arduino neopixel library.

This requires the cache remain ON when using M0, and be turned OFF on M4
(determined by trial and error)

Testing performed on a Metro M4:
 * measured timings using o'scope and found all values within
   datasheet tolerance.
 * Drove a string of 96 neopixels without visible glitches
 * on-board neopixel worked

Testing performed on a Circuit Playground Express (M0):
 * Color wheel code works on built-in neopixels
 * Color wheel code works on 96 neopixel strip

As a bonus, this may have freed up a bit of flash on M0 targets. (2988 ->
3068 bytes free on Trinket M0)

Closes: #2297
2019-12-07 19:19:45 -06:00
..
analogio Fix #ifdefs in port.c to call xxx_reset() rroutines properly. Remove most uses of EXPRESS_BOARD. 2019-02-18 22:44:31 -05:00
audiobusio samd: audio_dma: Track channel allocation 2019-08-28 17:00:22 -05:00
audioio AnalogOut / AudioOut: Copy settings from Arduino 2019-09-15 11:30:49 -05:00
board Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge 2017-10-24 22:31:16 -07:00
busio Merge remote-tracking branch 'origin/master' into tick-refactor 2019-11-29 11:27:09 -06:00
digitalio Fix crash when getting board.SPI outside the VM 2019-04-05 19:06:37 -07:00
displayio Rework based on Dan's review 2019-08-23 15:27:21 -07:00
frequencyio avoid double float arithmetic in FrequencyIn 2019-05-07 00:25:22 -04:00
i2cslave add pin claiming to devices 2018-08-31 18:38:05 -04:00
microcontroller revert error 2019-11-15 13:04:25 -05:00
neopixel_write samd: neopixel: Fix neopixels after #2297 2019-12-07 19:19:45 -06:00
nvm Add stack validity check and raise an error when it happens. 2018-12-04 23:26:04 -08:00
os Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge 2017-10-24 22:31:16 -07:00
ps2io Add PS/2 support -- ps2io module 2019-06-04 18:05:46 -03:00
pulseio Fix spelling 2019-10-25 10:50:27 -07:00
rotaryio typo in IncrementalEncoder.c 2019-08-20 16:23:17 -04:00
rtc Support internationalisation. 2018-08-07 14:58:57 -07:00
supervisor merge 3.x swap of /lib and .frozen; update frozen libs 2018-11-15 15:00:23 -05:00
time Supervisor: move most of systick to the supervisor 2019-11-18 11:01:23 -06:00
touchio merge from upstream and make translate 2019-08-20 13:06:23 -04:00