Library and demo using the WS2812-based Neopixel strip connected to an LPC114
Fork of LEDTape_WS2812 by
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 }
Generated on Thu Jul 14 2022 23:55:53 by 1.7.2