LED bus driver on any GPIO pin for addressable RGB LEDs (like NeoPixels or other WS2812 based LEDs)
LEDArray.cpp
- Committer:
- koengroener
- Date:
- 2017-06-14
- Revision:
- 3:67e68c46daef
File content as of revision 3:67e68c46daef:
#include "LEDArray.h" LEDArray::LEDArray(PinName wirePin, ColorByteOrder byteOrder, unsigned int numberOfLEDs, float t0h_us, float t0l_us, float t1h_us, float t1l_us, float tReset_us) : _ledBus(wirePin, byteOrder, t0h_us, t0l_us, t1h_us, t1l_us, tReset_us) { initialize(numberOfLEDs); } LEDArray::LEDArray(PinName wirePin, ColorByteOrder byteOrder, unsigned int numberOfLEDs) : _ledBus(wirePin, byteOrder, 0.35, 0.8, 0.7, 0.6, 50) { initialize(numberOfLEDs); } LEDArray::~LEDArray() { } void LEDArray::initialize(unsigned int numberOfLEDs) { _numberOfLEDs = numberOfLEDs; _leds = new Color*[_numberOfLEDs]; for(uint32_t i = 0; i < _numberOfLEDs; ++i) { _leds[i] = new Color(0,0,0); } } void LEDArray::setPixelColor(unsigned int pixel, uint8_t r, uint8_t g, uint8_t b) { _leds[pixel]->red = r; _leds[pixel]->green = g; _leds[pixel]->blue = b; } void LEDArray::setPixelColor(unsigned int pixel, Color& color) { setPixelColor(pixel, color.red, color.green, color.blue); } void LEDArray::show() { _ledBus.write(_leds, _numberOfLEDs); }