Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Adafruit_WS2801 by
Adafruit_WS2801.h
- Committer:
- SomeRandomBloke
- Date:
- 2014-02-12
- Revision:
- 2:2fdaa13896a4
- Parent:
- 1:6ff477690983
- Child:
- 3:dfffbd9f8ac6
File content as of revision 2:2fdaa13896a4:
#include "mbed.h"
// Not all LED pixels are RGB order; 36mm type expects GRB data.
// Optional flag to constructors indicates data order (default if
// unspecified is RGB). As long as setPixelColor/getPixelColor are
// used, other code can always treat 'packed' colors as RGB; the
// library will handle any required translation internally.
#define WS2801_RGB 0
#define WS2801_GRB 1
class Adafruit_WS2801 {
public:
// Configurable pins:
Adafruit_WS2801(uint16_t n, PinName dpin, PinName cpin, uint8_t order=WS2801_RGB);
Adafruit_WS2801(uint16_t x, uint16_t y, PinName dpin, PinName cpin, uint8_t order=WS2801_RGB);
// Use SPI hardware; specific pins only:
// Adafruit_WS2801(uint16_t n, uint8_t order=WS2801_RGB);
// Empty constructor; init pins/strand length/data order later:
// Adafruit_WS2801();
// Release memory (as needed):
~Adafruit_WS2801();
void
begin(void),
show(void),
setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b),
setPixelColor(uint16_t n, uint32_t c),
setPixelColor(uint16_t x, uint16_t y, uint8_t r, uint8_t g, uint8_t b),
setPixelColor(uint16_t x, uint16_t y, uint32_t c),
updatePins(PinName dpin, PinName cpin), // Change pins, configurable
updatePins(void), // Change pins, hardware SPI
updateLength(uint16_t n), // Change strand length
updateOrder(uint8_t order); // Change data order
uint16_t
numPixels(void);
uint32_t
getPixelColor(uint16_t n);
private:
uint16_t
numLEDs,
width, // used with matrix mode
height; // used with matrix mode
uint8_t
*pixels, // Holds color values for each LED (3 bytes each)
rgb_order // Color order; RGB vs GRB (or others, if needed in future)
;
DigitalOut clkpin;
DigitalOut datapin; // Clock & data pin numbers
void
alloc(uint16_t n);
// startSPI(void);
bool hardwareSPI; // If 'true', using hardware SPI
bool begun; // If 'true', begin() method was previously invoked
};
