@ -1,5 +1,5 @@
/*
Copyright 201 2 Jun Wako < wakojun @ gmail . com >
Copyright 201 7 Danny Nguyen < danny @ keeb . io >
This program is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
@ -30,7 +30,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "pro_micro.h"
# include "config.h"
# include "timer.h"
# ifdef BACKLIGHT_ENABLE
# include "backlight.h"
extern backlight_config_t backlight_config ;
# endif
# ifdef USE_I2C
# include "i2c.h"
@ -199,6 +203,15 @@ int i2c_transaction(void) {
err = i2c_master_write ( 0x00 ) ;
if ( err ) goto i2c_error ;
# ifdef BACKLIGHT_ENABLE
// Write backlight level for slave to read
err = i2c_master_write ( backlight_config . enable ? backlight_config . level : 0 ) ;
# else
// Write zero, so our byte index is the same
err = i2c_master_write ( 0x00 ) ;
# endif
if ( err ) goto i2c_error ;
// Start read
err = i2c_master_start ( SLAVE_I2C_ADDRESS + I2C_READ ) ;
if ( err ) goto i2c_error ;
@ -234,7 +247,7 @@ int serial_transaction(void) {
# ifdef BACKLIGHT_ENABLE
// Write backlight level for slave to read
serial_master_buffer [ SERIAL_LED_ADDR ] = get_backlight_level ( ) ;
serial_master_buffer [ SERIAL_LED_ADDR ] = backlight_config . enable ? backlight_config . level : 0 ;
# endif
return 0 ;
}
@ -276,8 +289,12 @@ void matrix_slave_scan(void) {
int offset = ( isLeftHand ) ? 0 : ROWS_PER_HAND ;
# ifdef USE_I2C
# ifdef BACKLIGHT_ENABLE
// Read backlight level sent from master and update level on slave
backlight_set ( i2c_slave_buffer [ 0 ] ) ;
# endif
for ( int i = 0 ; i < ROWS_PER_HAND ; + + i ) {
i2c_slave_buffer [ i ] = matrix [ offset + i ] ;
i2c_slave_buffer [ i + 1 ] = matrix [ offset + i ] ;
}
# else // USE_SERIAL
for ( int i = 0 ; i < ROWS_PER_HAND ; + + i ) {