|
|
@ -14,18 +14,9 @@ |
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __AVR__ |
|
|
|
|
|
|
|
# include <avr/interrupt.h> |
|
|
|
|
|
|
|
# include <avr/io.h> |
|
|
|
|
|
|
|
# include <util/delay.h> |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
# include "wait.h" |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "is31fl3736.h" |
|
|
|
#include "is31fl3736.h" |
|
|
|
#include <string.h> |
|
|
|
|
|
|
|
#include "i2c_master.h" |
|
|
|
#include "i2c_master.h" |
|
|
|
#include "progmem.h" |
|
|
|
#include "wait.h" |
|
|
|
|
|
|
|
|
|
|
|
// This is a 7-bit address, that gets left-shifted and bit 0
|
|
|
|
// This is a 7-bit address, that gets left-shifted and bit 0
|
|
|
|
// set to 0 for write, 1 for read (as per I2C protocol)
|
|
|
|
// set to 0 for write, 1 for read (as per I2C protocol)
|
|
|
@ -154,12 +145,8 @@ void IS31FL3736_init(uint8_t addr) { |
|
|
|
// Disable software shutdown.
|
|
|
|
// Disable software shutdown.
|
|
|
|
IS31FL3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); |
|
|
|
IS31FL3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01); |
|
|
|
|
|
|
|
|
|
|
|
// Wait 10ms to ensure the device has woken up.
|
|
|
|
// Wait 10ms to ensure the device has woken up.
|
|
|
|
#ifdef __AVR__ |
|
|
|
|
|
|
|
_delay_ms(10); |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
wait_ms(10); |
|
|
|
wait_ms(10); |
|
|
|
#endif |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { |
|
|
|
void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { |
|
|
@ -263,7 +250,7 @@ void IS31FL3736_update_pwm_buffers(uint8_t addr1, uint8_t addr2) { |
|
|
|
IS31FL3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); |
|
|
|
IS31FL3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM); |
|
|
|
|
|
|
|
|
|
|
|
IS31FL3736_write_pwm_buffer(addr1, g_pwm_buffer[0]); |
|
|
|
IS31FL3736_write_pwm_buffer(addr1, g_pwm_buffer[0]); |
|
|
|
// IS31FL3736_write_pwm_buffer( addr2, g_pwm_buffer[1] );
|
|
|
|
// IS31FL3736_write_pwm_buffer(addr2, g_pwm_buffer[1]);
|
|
|
|
} |
|
|
|
} |
|
|
|
g_pwm_buffer_update_required = false; |
|
|
|
g_pwm_buffer_update_required = false; |
|
|
|
} |
|
|
|
} |
|
|
@ -275,7 +262,7 @@ void IS31FL3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) { |
|
|
|
IS31FL3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); |
|
|
|
IS31FL3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL); |
|
|
|
for (int i = 0; i < 24; i++) { |
|
|
|
for (int i = 0; i < 24; i++) { |
|
|
|
IS31FL3736_write_register(addr1, i, g_led_control_registers[0][i]); |
|
|
|
IS31FL3736_write_register(addr1, i, g_led_control_registers[0][i]); |
|
|
|
// IS31FL3736_write_register(addr2, i, g_led_control_registers[1][i] );
|
|
|
|
// IS31FL3736_write_register(addr2, i, g_led_control_registers[1][i]);
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|