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
Diff: Adafruit_WS2801.h
- Revision:
- 0:582e1b9c1cc1
- Child:
- 1:6ff477690983
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Adafruit_WS2801.h Fri Mar 08 08:49:04 2013 +0000
@@ -0,0 +1,63 @@
+#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
+// clkpinmask, datapinmask; // Clock & data PORT bitmasks
+// volatile uint8_t
+// *clkport , *dataport; // Clock & data PORT registers
+ void
+ alloc(uint16_t n),
+ startSPI(void);
+ bool
+ hardwareSPI, // If 'true', using hardware SPI
+ begun; // If 'true', begin() method was previously invoked
+};
