Library and demo using the WS2812-based Neopixel strip connected to an LPC114
Fork of LEDTape_WS2812 by
Details here: http://mbed.org/users/rhodes42/notebook/tiny-neopixel-controller-with-lpc1114/
main.cpp@3:743570d993aa, 2014-04-08 (annotated)
- 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?
User | Revision | Line number | New 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 | } |