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

Dependencies:   mbed

Fork of LEDTape_WS2812 by Suga koubou

Details here: http://mbed.org/users/rhodes42/notebook/tiny-neopixel-controller-with-lpc1114/

Committer:
rhodes42
Date:
Tue Apr 08 20:56:03 2014 +0000
Revision:
3:743570d993aa
Parent:
2:61abc599f31f
added scalebrightness and changed main demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:d067ddfe3df9 1 /*
okini3939 0:d067ddfe3df9 2 * WS2812 tape led IC
okini3939 0:d067ddfe3df9 3 */
okini3939 0:d067ddfe3df9 4 #include "mbed.h"
okini3939 0:d067ddfe3df9 5 #include "LEDStrip.h"
rhodes42 1:71b32479b674 6 #include <stdint.h>
rhodes42 2:61abc599f31f 7 #include "LEDStripFunctions.h"
okini3939 0:d067ddfe3df9 8
rhodes42 1:71b32479b674 9 //Serial pc(USBTX, USBRX);
okini3939 0:d067ddfe3df9 10 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
okini3939 0:d067ddfe3df9 11
okini3939 0:d067ddfe3df9 12 extern "C"
okini3939 0:d067ddfe3df9 13 void HardFault_Handler() {
okini3939 0:d067ddfe3df9 14 printf("Hard Fault!\r\n");
okini3939 0:d067ddfe3df9 15 exit(-1);
okini3939 0:d067ddfe3df9 16 }
okini3939 0:d067ddfe3df9 17
okini3939 0:d067ddfe3df9 18 int main() {
rhodes42 1:71b32479b674 19 uint32_t i;
rhodes42 1:71b32479b674 20 int j, k = 0;
rhodes42 1:71b32479b674 21
rhodes42 1:71b32479b674 22 int numLEDs = 59;
rhodes42 1:71b32479b674 23 // pc.baud(115200);
rhodes42 1:71b32479b674 24 tapeInit(0, numLEDs);
okini3939 0:d067ddfe3df9 25 led1 = 1;
okini3939 0:d067ddfe3df9 26
rhodes42 1:71b32479b674 27 // pc.printf("led\r\n");
rhodes42 1:71b32479b674 28 int color_on = (0xff << 16) | (0xff << 8) | (0xff);
okini3939 0:d067ddfe3df9 29
rhodes42 2:61abc599f31f 30 uint32_t colors[numLEDs];
rhodes42 2:61abc599f31f 31 /*
rhodes42 2:61abc599f31f 32 for (k = 0; k < numLEDs; k++)
rhodes42 2:61abc599f31f 33 {
rhodes42 2:61abc599f31f 34 colors[k] = (k*260000);
rhodes42 2:61abc599f31f 35 }*/
rhodes42 2:61abc599f31f 36
rhodes42 3:743570d993aa 37 setEveryMod(colors, 0xff, 6, 0, numLEDs);
rhodes42 3:743570d993aa 38 setEveryMod(colors, (0xff<<8), 6, 1, numLEDs);
rhodes42 3:743570d993aa 39 setEveryMod(colors, (0xff<<16), 6, 2, numLEDs);
rhodes42 3:743570d993aa 40 setEveryMod(colors, (0xff<<16)|(0xff<<8), 6, 3, numLEDs);
rhodes42 3:743570d993aa 41 setEveryMod(colors, (0xff<<8)|(0xff), 6, 4, numLEDs);
rhodes42 3:743570d993aa 42 setEveryMod(colors, (0xff<<16)|(0xff), 6, 5, numLEDs);
rhodes42 3:743570d993aa 43 scaleBrightness(colors, 8, numLEDs);
rhodes42 2:61abc599f31f 44
okini3939 0:d067ddfe3df9 45 for (;;) {
rhodes42 2:61abc599f31f 46 led1 = 1;
rhodes42 1:71b32479b674 47
rhodes42 2:61abc599f31f 48
rhodes42 1:71b32479b674 49
rhodes42 2:61abc599f31f 50 for(i = 0; i < 59; i++);
rhodes42 1:71b32479b674 51 {
rhodes42 1:71b32479b674 52
rhodes42 2:61abc599f31f 53 shiftAllFwd(colors, numLEDs);
rhodes42 2:61abc599f31f 54 setAll(colors, numLEDs);
rhodes42 1:71b32479b674 55 led1 = 0;
rhodes42 1:71b32479b674 56 tapeSend();
rhodes42 3:743570d993aa 57 wait_ms(500);
rhodes42 1:71b32479b674 58
rhodes42 2:61abc599f31f 59 shiftAllFwd(colors, numLEDs);
rhodes42 2:61abc599f31f 60 setAll(colors, numLEDs);
rhodes42 1:71b32479b674 61 led1 = 1;
rhodes42 1:71b32479b674 62 tapeSend();
rhodes42 3:743570d993aa 63 wait_ms(500);
rhodes42 1:71b32479b674 64 }
okini3939 0:d067ddfe3df9 65 }
okini3939 0:d067ddfe3df9 66 }