Heroic Robotics / SD600A

Fork of SD600A by Heroic Robotics

Revision:
5:c2579d6415e1
Parent:
4:0b75eb84a6d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HL1606.h	Mon Oct 08 20:47:32 2012 +0000
@@ -0,0 +1,47 @@
+// Mbed library to control LPD8806-based RGB LED Strips
+// (c) 2011 Jelmer Tiete
+// This library is ported from the Arduino implementation of Adafruit Industries
+// found at: http://github.com/adafruit/LPD8806
+// and their strips: http://www.adafruit.com/products/306
+// Released under the MIT License: http://mbed.org/license/mit
+//
+/*****************************************************************************/
+
+// Heavily modified by Jas Strong, 2012-10-04
+// Changed to use a virtual base class and to use software SPI.
+
+#include "mbed.h"
+#include "rtos.h"
+#include "LedStrip.h"
+#ifndef MBED_HL1606_H
+#define MBED_HL1606_H
+
+class HL1606 : public LedStrip {
+
+ public:
+
+  HL1606(PinName dataPin, PinName clockPin, int n);
+  virtual void begin(void);
+  virtual void show(void);
+  virtual void blank(void);
+  virtual void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b);
+  virtual void setPixelB(uint16_t n, uint8_t b);
+  virtual void setPixelG(uint16_t n, uint8_t g);
+  virtual void setPixelR(uint16_t n, uint8_t r);
+  virtual void setPixelColor(uint16_t n, uint32_t c);
+  virtual uint16_t numPixels(void);
+  virtual uint32_t Color(uint8_t, uint8_t, uint8_t);
+  Mutex threadlock;
+  DigitalOut dat;
+  DigitalOut clk;
+  
+ private:
+  void write(uint8_t byte);
+  uint8_t *pixels;     // Holds LED color values
+  uint16_t numLEDs;     // Number of RGB LEDs in strand
+  Thread idlethread;
+    
+  void
+    writeguard(void);
+};
+#endif
\ No newline at end of file