Heroic Robotics / SD600A

Fork of SD600A by Heroic Robotics

Committer:
heroic
Date:
Fri Oct 05 05:41:39 2012 +0000
Revision:
4:0b75eb84a6d2
Parent:
3:a415f73507c9
Change to use virtual base class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ehbmbed2 0:12e734116fea 1 // Mbed library to control LPD8806-based RGB LED Strips
ehbmbed2 0:12e734116fea 2 // (c) 2011 Jelmer Tiete
ehbmbed2 0:12e734116fea 3 // This library is ported from the Arduino implementation of Adafruit Industries
ehbmbed2 0:12e734116fea 4 // found at: http://github.com/adafruit/LPD8806
ehbmbed2 0:12e734116fea 5 // and their strips: http://www.adafruit.com/products/306
ehbmbed2 0:12e734116fea 6 // Released under the MIT License: http://mbed.org/license/mit
ehbmbed2 1:6ebd3ac910b6 7 //
ehbmbed2 0:12e734116fea 8 /*****************************************************************************/
ehbmbed2 0:12e734116fea 9
heroic 4:0b75eb84a6d2 10 // Heavily modified by Jas Strong, 2012-10-04
heroic 4:0b75eb84a6d2 11 // Changed to use a virtual base class and to use software SPI.
heroic 4:0b75eb84a6d2 12
ehbmbed2 0:12e734116fea 13 #include "mbed.h"
heroic 4:0b75eb84a6d2 14 #include "LedStrip.h"
ehbmbed2 0:12e734116fea 15 #ifndef MBED_LPD8806_H
ehbmbed2 0:12e734116fea 16 #define MBED_LPD8806_H
ehbmbed2 0:12e734116fea 17
heroic 4:0b75eb84a6d2 18 class LPD8806 : public LedStrip {
ehbmbed2 0:12e734116fea 19
ehbmbed2 0:12e734116fea 20 public:
ehbmbed2 0:12e734116fea 21
heroic 2:af5af64e114d 22 LPD8806(PinName dataPin, PinName clockPin, int n);
heroic 4:0b75eb84a6d2 23 virtual void begin(void);
heroic 4:0b75eb84a6d2 24 virtual void show(void);
heroic 4:0b75eb84a6d2 25 virtual void blank(void);
heroic 4:0b75eb84a6d2 26 virtual void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b);
heroic 4:0b75eb84a6d2 27 virtual void setPixelB(uint16_t n, uint8_t b);
heroic 4:0b75eb84a6d2 28 virtual void setPixelG(uint16_t n, uint8_t g);
heroic 4:0b75eb84a6d2 29 virtual void setPixelR(uint16_t n, uint8_t r);
heroic 4:0b75eb84a6d2 30 virtual void setPixelColor(uint16_t n, uint32_t c);
heroic 4:0b75eb84a6d2 31 virtual uint16_t numPixels(void);
heroic 4:0b75eb84a6d2 32 virtual uint32_t Color(uint8_t, uint8_t, uint8_t);
ehbmbed2 0:12e734116fea 33
ehbmbed2 0:12e734116fea 34 private:
heroic 2:af5af64e114d 35 DigitalOut dat;
heroic 2:af5af64e114d 36 DigitalOut clk;
heroic 2:af5af64e114d 37 void write(uint8_t byte);
heroic 4:0b75eb84a6d2 38 uint8_t *pixels; // Holds LED color values
heroic 4:0b75eb84a6d2 39 uint16_t numLEDs; // Number of RGB LEDs in strand
ehbmbed2 0:12e734116fea 40
ehbmbed2 0:12e734116fea 41 void
ehbmbed2 0:12e734116fea 42 writezeros(uint16_t n);
ehbmbed2 0:12e734116fea 43 };
ehbmbed2 0:12e734116fea 44 #endif