Light Show library for organic, calm, light display.
Dependencies: BLE_API mbed nRF51822
Fork of mbed_blinky by
Diff: light_show.cpp
- Revision:
- 24:52319c0a14b8
- Child:
- 25:d48f46d753fd
diff -r 4bb74b53e112 -r 52319c0a14b8 light_show.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/light_show.cpp Sat Jan 30 20:07:55 2016 +0000 @@ -0,0 +1,52 @@ +#include "light_show.h" + +void Light_show::drive () +{ +// printf("Updating RGB values...\r\n"); + for (i=0; i<3; i++) { + if (!(rgb & (0x1 << i) )) { + if ( in > WAIT[i]) { +// printf("%d, %d, result: %d\r\n", rgb, (0x1 << i), (!(rgb & (0x1 << i)) ) ); + rgb_c[i] = -cos((in - WAIT[i])*SCALE[i]) + 1; + } else { + rgb_c[i] = 0.0; + } + } else + rgb_c[i] = 0.0; + pc->printf("%f\t",rgb_c[i]); + } + pc->printf("\n\r"); +// exit(0); +} + +void Light_show::randomize_params() +{ + float rand_seed = t.read(); + pc->printf("%f\n\r", rand_seed); + int rand_int = t.read() * 7919; + + time_t seconds = time(NULL); + pc->printf("Time as seconds since January 1, 1970 = %d\n\r", seconds); + + srand(rand_int); + pc->printf("A random %d\r\n", rand() ); + + // generate random values in 0.0 - 1.0 + uint8_t blah; + for (int j = 0; j < 3; j++) { + srand(rand_int+j); + blah = rand(); + SCALE[j] = (float) blah; + SCALE[j] /= (float) 0xff; + SCALE[j] = SCALE[j]*HPI + 1; + pc->printf("scale %d, %f\n\r", i, SCALE[i]); + srand(blah+j % 17 + 7); + blah = rand(); + WAIT[j] = (float) blah; + WAIT[j] /= (float) 0xff; + WAIT[j] *= HPI; + pc->printf("wait %d, %f\n\r", i, WAIT[i]); + } + rgb = 0x0; + printf("Params Initialized\r\n"); +} \ No newline at end of file