Experimental WS2812 driver and pixel buffer
Dependencies: PixelArray WS2812 mbed
Revision 2:57db905622ca, committed 2014-08-18
- Comitter:
- chris
- Date:
- Mon Aug 18 13:55:20 2014 +0000
- Parent:
- 1:bf4d674d3692
- Commit message:
- Code tidy
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Aug 18 13:27:10 2014 +0000 +++ b/main.cpp Mon Aug 18 13:55:20 2014 +0000 @@ -12,45 +12,34 @@ int main() { - int ctr=0; ws.useII(2); // use per-pixel intensity scaling // set up the colours we want to draw with int colorbuf[6] = {0x2f0000,0x2f2f00,0x002f00,0x002f2f,0x00002f,0x2f002f}; - - int h=0; - // for each of the colours (j) write out 10 of them - // the pixel get written at the rotation offset, plus the colour*10, plus the colour position + // the pixels are written at the colour*10, plus the colour position // all modulus 60 so it wraps around for (int i =0; i<6; i++) { for (int j=0; j<10; j++) { - px.Set((h+(i*10)+j)%60,colorbuf[i]); + px.Set(((i*10)+j)%60,colorbuf[i]); } } - // now all the colours are computed, add a fade effect + // now all the colours are computed, add a fade effect using intensity scaling // compute and write the II value for each pixel for (int j=0; j<60; j++) { // px.SetI(pixel position, II value) - px.SetI( (h+j)%60, 0xf+(0xf*(j%10))); + px.SetI(j%60, 0xf+(0xf*(j%10))); } - // the buffer is written - // rotate by writing it out with an increasing offset - + // Now the buffer is written, rotate it + // by writing it out with an increasing offset while (1) { for (int z=59; z >= 0 ; z--) { - ws.write_offsets(px.getBuf(),z,z,z); // write out the buffer + ws.write_offsets(px.getBuf(),z,z,z); wait(0.075); - if (ctr==1000) { - ctr=0; - led=!led; - } else { - ctr++; - } } }