Cascaded led driver to write use write into leds[i] = 0x0 or 0xfff
Fork of TLC5940 by
Diff: TLC5940.cpp
- Revision:
- 2:ff6fc805f4ea
- Parent:
- 1:05d2234c0965
- Child:
- 3:367910365a97
diff -r 05d2234c0965 -r ff6fc805f4ea TLC5940.cpp --- a/TLC5940.cpp Fri Mar 22 16:46:41 2013 +0000 +++ b/TLC5940.cpp Sat Mar 23 07:15:54 2013 +0000 @@ -1,30 +1,32 @@ #include "TLC5940.h" -int num_drivers = 1; + void setup (SPI &driver, DigitalOut &vprg, DigitalOut &xlat, DigitalOut &blank, DigitalOut &dcprg, PwmOut &gsclk, int num_ics) { xlat = 0; // hold GS/DC data constant - blank = 0; blank = 1; blank = 0; // Blank (squelch) all outputs dcprg = 1; // dcprg points DC data to DC register. vprg = 0; // sets drivers to GS mode. Set to 1 to change to DC mode - gsclk.period_us (1); // set grayscale clock to 1000 Hz + gsclk.period_ms (1); // set grayscale clock to 1000 Hz gsclk = 0.5; // turn on grayscale clock to 50% duty cycle at afore mentioned frequency if (num_ics <= 0) { - num_drivers = 1; + num_ics = 1; } else { - num_drivers = num_ics; + num_ics = num_ics; } driver.format (12,0); - driver.frequency (30000000); + driver.frequency (10000000); + + for (int i = num_ics; i >=0; i--){ + driver.write (0x0);} } @@ -32,13 +34,15 @@ { blank = 1; blank = 0; - for (int k = (num_drivers - 1); k >= 0; k--) - { - for (int i = (16 - 1); i >= 0; i--) + + for (int i = (32 - 1); i >= 0; i--) { - driver.write (*(LEDS + k + i)); + driver.write (*(LEDS + i)); } - } + xlat = 1; xlat = 0; -} \ No newline at end of file +} + + +