diff rgbled/Adafruit_NeoPixel/Adafruit_NeoPixel.h @ 1231:ef4ae15f2661

copy in rgb led program for arduino Ignore-this: ee63cf3e2100597625a4392bd95aba0d
author Drew Perttula <drewp@bigasterisk.com>
date Wed, 10 Jun 2015 04:55:39 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rgbled/Adafruit_NeoPixel/Adafruit_NeoPixel.h	Wed Jun 10 04:55:39 2015 +0000
@@ -0,0 +1,97 @@
+/*--------------------------------------------------------------------
+  This file is part of the Adafruit NeoPixel library.
+
+  NeoPixel is free software: you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation, either version 3 of
+  the License, or (at your option) any later version.
+
+  NeoPixel is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with NeoPixel.  If not, see
+  <http://www.gnu.org/licenses/>.
+  --------------------------------------------------------------------*/
+
+#ifndef ADAFRUIT_NEOPIXEL_H
+#define ADAFRUIT_NEOPIXEL_H
+
+#if (ARDUINO >= 100)
+ #include <Arduino.h>
+#else
+ #include <WProgram.h>
+ #include <pins_arduino.h>
+#endif
+
+// 'type' flags for LED pixels (third parameter to constructor):
+#define NEO_RGB     0x00 // Wired for RGB data order
+#define NEO_GRB     0x01 // Wired for GRB data order
+#define NEO_BRG     0x04
+  
+#define NEO_COLMASK 0x01
+#define NEO_KHZ800  0x02 // 800 KHz datastream
+#define NEO_SPDMASK 0x02
+// Trinket flash space is tight, v1 NeoPixels aren't handled by default.
+// Remove the ifndef/endif to add support -- but code will be bigger.
+// Conversely, can comment out the #defines to save space on other MCUs.
+#ifndef __AVR_ATtiny85__
+#define NEO_KHZ400  0x00 // 400 KHz datastream
+#endif
+
+class Adafruit_NeoPixel {
+
+ public:
+
+  // Constructor: number of LEDs, pin number, LED type
+  Adafruit_NeoPixel(uint16_t n, uint8_t p=6, uint8_t t=NEO_GRB + NEO_KHZ800);
+  ~Adafruit_NeoPixel();
+
+  void
+    begin(void),
+    show(void),
+    setPin(uint8_t p),
+    setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b),
+    setPixelColor(uint16_t n, uint32_t c),
+    setBrightness(uint8_t),
+    clear();
+  uint8_t
+   *getPixels(void) const,
+    getBrightness(void) const;
+  uint16_t
+    numPixels(void) const;
+  static uint32_t
+    Color(uint8_t r, uint8_t g, uint8_t b);
+  uint32_t
+    getPixelColor(uint16_t n) const;
+  inline bool
+    canShow(void) { return (micros() - endTime) >= 50L; }
+
+ private:
+
+  const uint16_t
+    numLEDs,       // Number of RGB LEDs in strip
+    numBytes;      // Size of 'pixels' buffer below
+  uint8_t
+    pin,           // Output pin number
+    brightness,
+   *pixels,        // Holds LED color values (3 bytes each)
+    rOffset,       // Index of red byte within each 3-byte pixel
+    gOffset,       // Index of green byte
+    bOffset;       // Index of blue byte
+  const uint8_t
+    type;          // Pixel flags (400 vs 800 KHz, RGB vs GRB color)
+  uint32_t
+    endTime;       // Latch timing reference
+#ifdef __AVR__
+  const volatile uint8_t
+    *port;         // Output PORT register
+  uint8_t
+    pinMask;       // Output PORT bitmask
+#endif
+
+};
+
+#endif // ADAFRUIT_NEOPIXEL_H