Simple 8x8 LED Matrix controller which interfaces with a Processing GUI over serial to display sketches

Dependencies:   Multi_WS2811 mbed

Fork of Multi_WS2811_test by Ned Konz

Files at this revision

API Documentation at this revision

Comitter:
heroic
Date:
Fri Oct 05 05:41:39 2012 +0000
Parent:
3:a415f73507c9
Child:
5:70ded6500cd3
Commit message:
Change to use virtual base class

Changed in this revision

LPD8806.cpp Show annotated file Show diff for this revision Revisions of this file
LPD8806.h Show annotated file Show diff for this revision Revisions of this file
LedStrip.h Show annotated file Show diff for this revision Revisions of this file
--- a/LPD8806.cpp	Mon Oct 01 02:30:12 2012 +0000
+++ b/LPD8806.cpp	Fri Oct 05 05:41:39 2012 +0000
@@ -9,6 +9,7 @@
 // Jas Strong <jasmine@electronpusher.org>
 /*****************************************************************************/
 
+#include "LedStrip.h"
 #include "LPD8806.h"
 
 LPD8806::LPD8806(PinName dataPin, PinName clockPin, int n) :
--- a/LPD8806.h	Mon Oct 01 02:30:12 2012 +0000
+++ b/LPD8806.h	Fri Oct 05 05:41:39 2012 +0000
@@ -5,44 +5,38 @@
 // and their strips: http://www.adafruit.com/products/306
 // Released under the MIT License: http://mbed.org/license/mit
 //
-// standard connected to 1st hardware SPI
-// LPD8806  <> MBED
-// DATA     -> P5
-// CLOCK    -> p7
 /*****************************************************************************/
 
+// Heavily modified by Jas Strong, 2012-10-04
+// Changed to use a virtual base class and to use software SPI.
+
 #include "mbed.h"
+#include "LedStrip.h"
 #ifndef MBED_LPD8806_H
 #define MBED_LPD8806_H
 
-class LPD8806 {
+class LPD8806 : public LedStrip {
 
  public:
 
   LPD8806(PinName dataPin, PinName clockPin, int n);
-  void
-    begin(void),
-    show(void),
-    blank(void),
-    setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b),
-    setPixelB(uint16_t n, uint8_t b),
-    setPixelG(uint16_t n, uint8_t g),
-    setPixelR(uint16_t n, uint8_t r),
-    
-    setPixelColor(uint16_t n, uint32_t c);
-  uint16_t
-    numPixels(void);
-  uint32_t
-    Color(uint8_t, uint8_t, uint8_t);
+  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);
 
  private:
   DigitalOut dat;
   DigitalOut clk;
   void write(uint8_t byte);
-  uint8_t
-    *pixels;     // Holds LED color values
-  uint16_t
-    numLEDs;     // Number of RGB LEDs in strand
+  uint8_t *pixels;     // Holds LED color values
+  uint16_t numLEDs;     // Number of RGB LEDs in strand
     
   void
     writezeros(uint16_t n);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LedStrip.h	Fri Oct 05 05:41:39 2012 +0000
@@ -0,0 +1,28 @@
+// Parent class for all addressable LED strips.
+// Partially based on work by and (c) 2011 Jelmer Tiete
+// whose 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
+
+// This is a pure virtual parent class for all LED strips, so that different types
+// of strip may be used in a single array or container.
+
+#include "mbed.h"
+#ifndef LEDSTRIP_H
+#define LEDSTRIP_H
+
+class LedStrip {
+ public:
+  virtual void begin(void)=0;
+  virtual void show(void)=0;
+  virtual void blank(void)=0;
+  virtual void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b)=0;
+  virtual void setPixelB(uint16_t n, uint8_t b)=0;
+  virtual void setPixelG(uint16_t n, uint8_t g)=0;
+  virtual void setPixelR(uint16_t n, uint8_t r)=0;
+  virtual void setPixelColor(uint16_t n, uint32_t c)=0;
+  virtual uint16_t numPixels(void)=0;
+  virtual uint32_t Color(uint8_t, uint8_t, uint8_t)=0;
+};
+#endif
\ No newline at end of file