Cascaded led driver to write use write into leds[i] = 0x0 or 0xfff

Dependents:   M5VelocityALLCODE

Fork of TLC5940 by Kartik Jangam

Committer:
slisgrinder
Date:
Fri Jan 25 21:54:56 2013 +0000
Revision:
0:1fb7b50d16b1
Child:
1:05d2234c0965
V1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
slisgrinder 0:1fb7b50d16b1 1 #include "TLC5940.h"
slisgrinder 0:1fb7b50d16b1 2
slisgrinder 0:1fb7b50d16b1 3
slisgrinder 0:1fb7b50d16b1 4
slisgrinder 0:1fb7b50d16b1 5 void setup (SPI &driver, PwmOut &gsclk, PinName xlat, PinName blank, PinName dcprg, PinName vprg, int num_ics)
slisgrinder 0:1fb7b50d16b1 6 {
slisgrinder 0:1fb7b50d16b1 7 xlat = 0; // hold GS/DC data constant
slisgrinder 0:1fb7b50d16b1 8 blank = 1; // Blank (squelch) all outputs
slisgrinder 0:1fb7b50d16b1 9 dcprg = 1; // dcprg points DC data to DC register.
slisgrinder 0:1fb7b50d16b1 10 vprg = 0; // sets drivers to GS mode. Set to 1 to change to DC mode
slisgrinder 0:1fb7b50d16b1 11 gsclk.period_us (1); // set grayscale clock to 1 MHz
slisgrinder 0:1fb7b50d16b1 12 gsclk = 0.5; // turn on grayscale clock to 50% duty cycle at afore mentioned frequency
slisgrinder 0:1fb7b50d16b1 13
slisgrinder 0:1fb7b50d16b1 14 if (num_ics <= 0)
slisgrinder 0:1fb7b50d16b1 15 {
slisgrinder 0:1fb7b50d16b1 16 num_drivers = 1;
slisgrinder 0:1fb7b50d16b1 17 {
slisgrinder 0:1fb7b50d16b1 18 else
slisgrinder 0:1fb7b50d16b1 19 {
slisgrinder 0:1fb7b50d16b1 20 num_drivers = num_ics;
slisgrinder 0:1fb7b50d16b1 21 }
slisgrinder 0:1fb7b50d16b1 22
slisgrinder 0:1fb7b50d16b1 23
slisgrinder 0:1fb7b50d16b1 24 driver.format (16,0);
slisgrinder 0:1fb7b50d16b1 25 driver.frequency (30000000);
slisgrinder 0:1fb7b50d16b1 26 }
slisgrinder 0:1fb7b50d16b1 27
slisgrinder 0:1fb7b50d16b1 28
slisgrinder 0:1fb7b50d16b1 29
slisgrinder 0:1fb7b50d16b1 30 void update_led (SPI &driver, uint16_t LEDS [][])
slisgrinder 0:1fb7b50d16b1 31 {
slisgrinder 0:1fb7b50d16b1 32 blank = 1;
slisgrinder 0:1fb7b50d16b1 33 dcprg = 1;
slisgrinder 0:1fb7b50d16b1 34 vprg = 0;
slisgrinder 0:1fb7b50d16b1 35 xlat = 0;
slisgrinder 0:1fb7b50d16b1 36
slisgrinder 0:1fb7b50d16b1 37 for (int k = 0; k < num_drivers; k++)
slisgrinder 0:1fb7b50d16b1 38 {
slisgrinder 0:1fb7b50d16b1 39 for (int i = 0; i < 16; i++)
slisgrinder 0:1fb7b50d16b1 40 {
slisgrinder 0:1fb7b50d16b1 41 driver.write (LEDS [k][i]);
slisgrinder 0:1fb7b50d16b1 42 }
slisgrinder 0:1fb7b50d16b1 43 }
slisgrinder 0:1fb7b50d16b1 44 xlat = 1;
slisgrinder 0:1fb7b50d16b1 45 xlat = 0;
slisgrinder 0:1fb7b50d16b1 46 blank = 0;
slisgrinder 0:1fb7b50d16b1 47 }