Library and demo using the WS2812-based Neopixel strip connected to an LPC114

Dependencies:   mbed

Fork of LEDTape_WS2812 by Suga koubou

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LEDStripFunctions.cpp Source File

LEDStripFunctions.cpp

00001 #include "mbed.h"
00002 #include "LEDStrip.h"
00003 #include <stdint.h>
00004 
00005 
00006 void setAll(uint32_t *buffer, int n)
00007 {
00008     int i;
00009     for (i = 0; i < n; i++)
00010     {
00011         tapeSet(i, buffer[i]);   
00012     }
00013 }
00014 
00015 void setAllOneColor(uint32_t color, int n)
00016 {
00017     int i;
00018     for (i = 0; i < n; i++)
00019     {
00020         tapeSet(i, color);   
00021     }   
00022 }
00023 
00024 void shiftAllFwd(uint32_t *buffer, int n)
00025 {
00026     int i;
00027     uint32_t temp = buffer[n];
00028     for (i = n; i > 0; i--)
00029     {        
00030         buffer[i] = buffer[i-1];
00031     }
00032     buffer[0] = temp;
00033 }
00034 
00035 void shiftAllRev(uint32_t *buffer, int n)
00036 {
00037     int i;
00038     uint32_t temp = buffer[0];
00039     for (i = 0; i <= n-1; i++)
00040     {        
00041         buffer[i] = buffer[i+1];
00042     }
00043     buffer[n] = temp;
00044 }
00045 
00046 
00047 void setEveryMod(uint32_t * buffer, uint32_t color, int mod, int start, int n)
00048 {
00049     int i;
00050     for (i = 0; i < n; i ++)
00051     {
00052         if ((i >= start) && ((i - start) % mod == 0)) buffer[i] = color;   
00053     }   
00054 }
00055 
00056 
00057 void scaleBrightness(uint32_t *buffer, int divider, int n)
00058 {
00059     int i, r, g, b;
00060     for (i = 0; i < n; i++)
00061     {
00062         r = (buffer[i] >> 16) & 0xff;
00063         g = (buffer[i] >> 8 ) & 0xff;
00064         b = (buffer[i]      ) & 0xff;
00065         r /= divider;
00066         g /= divider;
00067         b /= divider;
00068         buffer[i] = (r << 16) | (g << 8) | (b);
00069     } 
00070 }
00071 
00072 void setPixelRGB(int pixel, int r, int g, int b)
00073 {
00074        
00075     int pix = (r << 16) | (g << 8) | (b);
00076     tapeSet(pixel, pix);
00077 }