blablabla
TLC5940.cpp@0:2a7734c01842, 2015-07-29 (annotated)
- Committer:
- kohacraft
- Date:
- Wed Jul 29 06:44:12 2015 +0000
- Revision:
- 0:2a7734c01842
ver1.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 0:2a7734c01842 | 1 | #include "TLC5940.h" |
kohacraft | 0:2a7734c01842 | 2 | |
kohacraft | 0:2a7734c01842 | 3 | int num_drivers = 1; |
kohacraft | 0:2a7734c01842 | 4 | |
kohacraft | 0:2a7734c01842 | 5 | void setup (SPI &driver, DigitalOut &vprg, DigitalOut &xlat, DigitalOut &blank, PwmOut &gsclk, int num_ics) |
kohacraft | 0:2a7734c01842 | 6 | { |
kohacraft | 0:2a7734c01842 | 7 | driver.format (6,0); |
kohacraft | 0:2a7734c01842 | 8 | driver.frequency (20000000); |
kohacraft | 0:2a7734c01842 | 9 | if (num_ics <= 0) |
kohacraft | 0:2a7734c01842 | 10 | { |
kohacraft | 0:2a7734c01842 | 11 | num_drivers = 1; |
kohacraft | 0:2a7734c01842 | 12 | } |
kohacraft | 0:2a7734c01842 | 13 | else |
kohacraft | 0:2a7734c01842 | 14 | { |
kohacraft | 0:2a7734c01842 | 15 | num_drivers = num_ics; |
kohacraft | 0:2a7734c01842 | 16 | } |
kohacraft | 0:2a7734c01842 | 17 | |
kohacraft | 0:2a7734c01842 | 18 | xlat = 0; // hold GS/DC data constant |
kohacraft | 0:2a7734c01842 | 19 | blank = 0; |
kohacraft | 0:2a7734c01842 | 20 | blank = 1; |
kohacraft | 0:2a7734c01842 | 21 | blank = 0; // Blank (squelch) all outputs |
kohacraft | 0:2a7734c01842 | 22 | |
kohacraft | 0:2a7734c01842 | 23 | //補正データを最大に設定 |
kohacraft | 0:2a7734c01842 | 24 | vprg = 1; |
kohacraft | 0:2a7734c01842 | 25 | for (int i = 0; i<16*num_ics; i++) |
kohacraft | 0:2a7734c01842 | 26 | { |
kohacraft | 0:2a7734c01842 | 27 | driver.write (0x3F); //最大 |
kohacraft | 0:2a7734c01842 | 28 | } |
kohacraft | 0:2a7734c01842 | 29 | xlat = 1; |
kohacraft | 0:2a7734c01842 | 30 | xlat = 0; // hold GS/DC data constant |
kohacraft | 0:2a7734c01842 | 31 | |
kohacraft | 0:2a7734c01842 | 32 | driver.format (12,0); |
kohacraft | 0:2a7734c01842 | 33 | vprg = 0; // sets drivers to GS mode. Set to 1 to change to DC mode |
kohacraft | 0:2a7734c01842 | 34 | gsclk.period_us (1.0); // set grayscale clock to 1000 Hz |
kohacraft | 0:2a7734c01842 | 35 | gsclk = 0.5; // turn on grayscale clock to 50% duty cycle at afore mentioned frequency |
kohacraft | 0:2a7734c01842 | 36 | |
kohacraft | 0:2a7734c01842 | 37 | |
kohacraft | 0:2a7734c01842 | 38 | |
kohacraft | 0:2a7734c01842 | 39 | } |
kohacraft | 0:2a7734c01842 | 40 | |
kohacraft | 0:2a7734c01842 | 41 | |
kohacraft | 0:2a7734c01842 | 42 | void update_led (SPI &driver, DigitalOut &xlat, DigitalOut &blank, PwmOut &gsclk, unsigned short* LEDS) |
kohacraft | 0:2a7734c01842 | 43 | { |
kohacraft | 0:2a7734c01842 | 44 | blank = 1; |
kohacraft | 0:2a7734c01842 | 45 | for (int k = (num_drivers - 1); k >= 0; k--) |
kohacraft | 0:2a7734c01842 | 46 | { |
kohacraft | 0:2a7734c01842 | 47 | for (int i = (16 - 1); i >= 0; i--) |
kohacraft | 0:2a7734c01842 | 48 | { |
kohacraft | 0:2a7734c01842 | 49 | driver.write (*(LEDS + k + i)); |
kohacraft | 0:2a7734c01842 | 50 | } |
kohacraft | 0:2a7734c01842 | 51 | } |
kohacraft | 0:2a7734c01842 | 52 | wait_us(10); |
kohacraft | 0:2a7734c01842 | 53 | xlat = 1; |
kohacraft | 0:2a7734c01842 | 54 | xlat = 0; |
kohacraft | 0:2a7734c01842 | 55 | blank = 0; |
kohacraft | 0:2a7734c01842 | 56 | driver.format (12,0); |
kohacraft | 0:2a7734c01842 | 57 | |
kohacraft | 0:2a7734c01842 | 58 | } |
kohacraft | 0:2a7734c01842 | 59 | |
kohacraft | 0:2a7734c01842 | 60 | void offDisp(DigitalOut &blank , PwmOut &gsclk) |
kohacraft | 0:2a7734c01842 | 61 | { |
kohacraft | 0:2a7734c01842 | 62 | blank = 1; |
kohacraft | 0:2a7734c01842 | 63 | } |
kohacraft | 0:2a7734c01842 | 64 | |
kohacraft | 0:2a7734c01842 | 65 |