init update
Diff: TLC5940.cpp
- Revision:
- 0:1fb7b50d16b1
- Child:
- 1:05d2234c0965
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TLC5940.cpp Fri Jan 25 21:54:56 2013 +0000 @@ -0,0 +1,47 @@ +#include "TLC5940.h" + + + +void setup (SPI &driver, PwmOut &gsclk, PinName xlat, PinName blank, PinName dcprg, PinName vprg, int num_ics) +{ + xlat = 0; // hold GS/DC data constant + blank = 1; // 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 1 MHz + gsclk = 0.5; // turn on grayscale clock to 50% duty cycle at afore mentioned frequency + + if (num_ics <= 0) + { + num_drivers = 1; + { + else + { + num_drivers = num_ics; + } + + + driver.format (16,0); + driver.frequency (30000000); +} + + + +void update_led (SPI &driver, uint16_t LEDS [][]) +{ + blank = 1; + dcprg = 1; + vprg = 0; + xlat = 0; + + for (int k = 0; k < num_drivers; k++) + { + for (int i = 0; i < 16; i++) + { + driver.write (LEDS [k][i]); + } + } + xlat = 1; + xlat = 0; + blank = 0; +} \ No newline at end of file