Heroic Robotics / SD600A

Fork of SD600A by Heroic Robotics

Committer:
heroic
Date:
Wed Oct 10 03:09:09 2012 +0000
Revision:
8:78ba2917bfd9
Parent:
6:aacceefab2ea
Child:
10:d2dd5c752f7b
Make guard words actual guard words, rather than something completely wrong.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
heroic 6:aacceefab2ea 1 // Mbed library to control SD600A-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 6:aacceefab2ea 11 // Changed to use a virtual base class, drive the SD600A, 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 6:aacceefab2ea 16 #ifndef MBED_SD600A_H
heroic 6:aacceefab2ea 17 #define MBED_SD600A_H
ehbmbed2 0:12e734116fea 18
heroic 8:78ba2917bfd9 19 //#define DELAY_PERIOD (1)
heroic 8:78ba2917bfd9 20
heroic 6:aacceefab2ea 21 class SD600A : public LedStrip {
ehbmbed2 0:12e734116fea 22
ehbmbed2 0:12e734116fea 23 public:
ehbmbed2 0:12e734116fea 24
heroic 6:aacceefab2ea 25 SD600A(PinName dataPin, PinName clockPin, int n);
heroic 4:0b75eb84a6d2 26 virtual void begin(void);
heroic 4:0b75eb84a6d2 27 virtual void show(void);
heroic 4:0b75eb84a6d2 28 virtual void blank(void);
heroic 4:0b75eb84a6d2 29 virtual void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b);
heroic 4:0b75eb84a6d2 30 virtual void setPixelB(uint16_t n, uint8_t b);
heroic 4:0b75eb84a6d2 31 virtual void setPixelG(uint16_t n, uint8_t g);
heroic 4:0b75eb84a6d2 32 virtual void setPixelR(uint16_t n, uint8_t r);
heroic 4:0b75eb84a6d2 33 virtual void setPixelColor(uint16_t n, uint32_t c);
heroic 4:0b75eb84a6d2 34 virtual uint16_t numPixels(void);
heroic 4:0b75eb84a6d2 35 virtual uint32_t Color(uint8_t, uint8_t, uint8_t);
heroic 5:c2579d6415e1 36 Mutex threadlock;
heroic 2:af5af64e114d 37 DigitalOut dat;
heroic 2:af5af64e114d 38 DigitalOut clk;
heroic 5:c2579d6415e1 39
heroic 5:c2579d6415e1 40 private:
heroic 2:af5af64e114d 41 void write(uint8_t byte);
heroic 4:0b75eb84a6d2 42 uint8_t *pixels; // Holds LED color values
heroic 4:0b75eb84a6d2 43 uint16_t numLEDs; // Number of RGB LEDs in strand
heroic 5:c2579d6415e1 44 Thread idlethread;
ehbmbed2 0:12e734116fea 45
ehbmbed2 0:12e734116fea 46 void
heroic 5:c2579d6415e1 47 writeguard(void);
ehbmbed2 0:12e734116fea 48 };
ehbmbed2 0:12e734116fea 49 #endif