Minimal library to work with APA102-based LED strips. Uses code from FastLED library.
Diff: APA102.cpp
- Revision:
- 0:c223864b981f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/APA102.cpp Tue Dec 11 06:29:34 2018 +0000 @@ -0,0 +1,32 @@ +#include "mbed.h" +#include "APA102.h" + +void fill_solid( struct CRGB * leds, int numToFill, const struct CRGB& color) { + for(int i = 0; i < numToFill; i++) { + leds[i] = color; + } +} + +void APA102_write(mbed::SPI& mSPI, struct CRGB * leds, int numToFill) { + + mSPI.write(0); + mSPI.write(0); + mSPI.write(0); + mSPI.write(0); + + for (int i = 0; i < numToFill; ++i) { + mSPI.write(0xE0 | 31); + mSPI.write(leds[i].b); + mSPI.write(leds[i].g); + mSPI.write(leds[i].r); + } + + int nDWords = numToFill / 32; + do { + mSPI.write(0xFF); + mSPI.write(0x00); + mSPI.write(0x00); + mSPI.write(0x00); + } while(nDWords--); + +}