Example program for the GE Color Effects library

Dependencies:   GEColorEffects mbed

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?

UserRevisionLine numberNew 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 }