Example program for the GE Color Effects library
Dependencies: GEColorEffects mbed
main.cpp@1:c182cbfd37b0, 2015-07-15 (annotated)
- Committer:
- bridadan
- Date:
- Wed Jul 15 20:07:51 2015 +0000
- Revision:
- 1:c182cbfd37b0
- Parent:
- 0:19269f9af0f5
Updating library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bridadan | 0:19269f9af0f5 | 1 | #include "mbed.h" |
bridadan | 0:19269f9af0f5 | 2 | #include "GEColorEffects.h" |
bridadan | 0:19269f9af0f5 | 3 | |
bridadan | 0:19269f9af0f5 | 4 | #define NUM_LIGHTS 25 |
bridadan | 0:19269f9af0f5 | 5 | #define NUM_COLORS 6 |
bridadan | 0:19269f9af0f5 | 6 | #define NUM_LEDS_PER_COLOR 1 |
bridadan | 0:19269f9af0f5 | 7 | |
bridadan | 0:19269f9af0f5 | 8 | int px[NUM_LIGHTS]; |
bridadan | 0:19269f9af0f5 | 9 | |
bridadan | 0:19269f9af0f5 | 10 | // See the program page for information on the timing numbers |
bridadan | 0:19269f9af0f5 | 11 | // The given numbers are for the K64F |
bridadan | 0:19269f9af0f5 | 12 | GEColorEffects gce(D9, NUM_LIGHTS); |
bridadan | 0:19269f9af0f5 | 13 | |
bridadan | 0:19269f9af0f5 | 14 | int main() |
bridadan | 0:19269f9af0f5 | 15 | { |
bridadan | 0:19269f9af0f5 | 16 | |
bridadan | 0:19269f9af0f5 | 17 | //ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling |
bridadan | 0:19269f9af0f5 | 18 | |
bridadan | 0:19269f9af0f5 | 19 | // set up the colours we want to draw with |
bridadan | 0:19269f9af0f5 | 20 | int colorbuf[NUM_COLORS] = {0xFFFF0000, 0xFFFF4400, 0xFFFFFF00, 0xFF00CC00, 0xFF0033CC, 0xFF660099}; |
bridadan | 0:19269f9af0f5 | 21 | |
bridadan | 0:19269f9af0f5 | 22 | // for each of the colours (j) write out 10 of them |
bridadan | 0:19269f9af0f5 | 23 | // the pixels are written at the colour*10, plus the colour position |
bridadan | 0:19269f9af0f5 | 24 | // all modulus 60 so it wraps around |
bridadan | 0:19269f9af0f5 | 25 | for (int i = 0; i < NUM_LIGHTS; i++) { |
bridadan | 0:19269f9af0f5 | 26 | px[i] = colorbuf[(i / NUM_LEDS_PER_COLOR) % NUM_COLORS]; |
bridadan | 0:19269f9af0f5 | 27 | } |
bridadan | 0:19269f9af0f5 | 28 | |
bridadan | 0:19269f9af0f5 | 29 | // Now the buffer is written, rotate it |
bridadan | 0:19269f9af0f5 | 30 | // by writing it out with an increasing offset |
bridadan | 0:19269f9af0f5 | 31 | while (1) { |
bridadan | 0:19269f9af0f5 | 32 | int last = px[NUM_LIGHTS - 1]; |
bridadan | 0:19269f9af0f5 | 33 | for (int i = NUM_LIGHTS - 1; i > 0; i--) { |
bridadan | 0:19269f9af0f5 | 34 | px[i] = px[i - 1]; |
bridadan | 0:19269f9af0f5 | 35 | } |
bridadan | 0:19269f9af0f5 | 36 | px[0] = last; |
bridadan | 0:19269f9af0f5 | 37 | gce.write(px, true); |
bridadan | 0:19269f9af0f5 | 38 | wait(1); |
bridadan | 0:19269f9af0f5 | 39 | } |
bridadan | 0:19269f9af0f5 | 40 | |
bridadan | 0:19269f9af0f5 | 41 | } |