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

Dependents:   M5VelocityALLCODE

Fork of TLC5940 by Kartik Jangam

Committer:
Mach5
Date:
Sat Mar 23 07:15:54 2013 +0000
Revision:
2:ff6fc805f4ea
Parent:
1:05d2234c0965
Child:
3:367910365a97
Cascaded LED driver TLC5940 with example

Who changed what in which revision?

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