Heroic Robotics / SD600A

Fork of SD600A by Heroic Robotics

Committer:
heroic
Date:
Mon Oct 08 20:47:32 2012 +0000
Revision:
5:c2579d6415e1
Parent:
LPD8806.h@4:0b75eb84a6d2
First cut of HL1606 driver.

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 5:c2579d6415e1 14 #include "rtos.h"
heroic 4:0b75eb84a6d2 15 #include "LedStrip.h"
heroic 5:c2579d6415e1 16 #ifndef MBED_HL1606_H
heroic 5:c2579d6415e1 17 #define MBED_HL1606_H
ehbmbed2 0:12e734116fea 18
heroic 5:c2579d6415e1 19 class HL1606 : public LedStrip {
ehbmbed2 0:12e734116fea 20
ehbmbed2 0:12e734116fea 21 public:
ehbmbed2 0:12e734116fea 22
heroic 5:c2579d6415e1 23 HL1606(PinName dataPin, PinName clockPin, int n);
heroic 4:0b75eb84a6d2 24 virtual void begin(void);
heroic 4:0b75eb84a6d2 25 virtual void show(void);
heroic 4:0b75eb84a6d2 26 virtual void blank(void);
heroic 4:0b75eb84a6d2 27 virtual void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b);
heroic 4:0b75eb84a6d2 28 virtual void setPixelB(uint16_t n, uint8_t b);
heroic 4:0b75eb84a6d2 29 virtual void setPixelG(uint16_t n, uint8_t g);
heroic 4:0b75eb84a6d2 30 virtual void setPixelR(uint16_t n, uint8_t r);
heroic 4:0b75eb84a6d2 31 virtual void setPixelColor(uint16_t n, uint32_t c);
heroic 4:0b75eb84a6d2 32 virtual uint16_t numPixels(void);
heroic 4:0b75eb84a6d2 33 virtual uint32_t Color(uint8_t, uint8_t, uint8_t);
heroic 5:c2579d6415e1 34 Mutex threadlock;
heroic 2:af5af64e114d 35 DigitalOut dat;
heroic 2:af5af64e114d 36 DigitalOut clk;
heroic 5:c2579d6415e1 37
heroic 5:c2579d6415e1 38 private:
heroic 2:af5af64e114d 39 void write(uint8_t byte);
heroic 4:0b75eb84a6d2 40 uint8_t *pixels; // Holds LED color values
heroic 4:0b75eb84a6d2 41 uint16_t numLEDs; // Number of RGB LEDs in strand
heroic 5:c2579d6415e1 42 Thread idlethread;
ehbmbed2 0:12e734116fea 43
ehbmbed2 0:12e734116fea 44 void
heroic 5:c2579d6415e1 45 writeguard(void);
ehbmbed2 0:12e734116fea 46 };
ehbmbed2 0:12e734116fea 47 #endif