init update
Embed:
(wiki syntax)
Show/hide line numbers
TLC5940.cpp
00001 #include "TLC5940.h" 00002 00003 int num_drivers = 1; 00004 00005 void setup (SPI &driver, DigitalOut &vprg, DigitalOut &xlat, DigitalOut &blank, DigitalOut &dcprg, PwmOut &gsclk, int num_ics) 00006 { 00007 xlat = 0; // hold GS/DC data constant 00008 blank = 0; 00009 blank = 1; 00010 blank = 0; // Blank (squelch) all outputs 00011 dcprg = 1; // dcprg points DC data to DC register. 00012 vprg = 0; // sets drivers to GS mode. Set to 1 to change to DC mode 00013 gsclk.period_us (1); // set grayscale clock to 1000 Hz 00014 gsclk = 0.5; // turn on grayscale clock to 50% duty cycle at afore mentioned frequency 00015 00016 if (num_ics <= 0) 00017 { 00018 num_drivers = 1; 00019 } 00020 else 00021 { 00022 num_drivers = num_ics; 00023 } 00024 00025 00026 driver.format (12,0); 00027 driver.frequency (30000000); 00028 } 00029 00030 00031 void update_led (SPI &driver, DigitalOut &xlat, DigitalOut &blank, unsigned short* LEDS) 00032 { 00033 blank = 1; 00034 blank = 0; 00035 for (int k = (num_drivers - 1); k >= 0; k--) 00036 { 00037 for (int i = (16 - 1); i >= 0; i--) 00038 { 00039 driver.write (*(LEDS + k + i)); 00040 } 00041 } 00042 xlat = 1; 00043 xlat = 0; 00044 }
Generated on Wed Jul 20 2022 02:45:22 by 1.7.2