init update

Committer:
slisgrinder
Date:
Fri Mar 22 16:46:41 2013 +0000
Revision:
1:05d2234c0965
Parent:
0:1fb7b50d16b1
v1

Who changed what in which revision?

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