- Added fix for USB Current Change * If called during interrupt, could hang the I2C bus * Delaying I2C writes till scan loopcapsense
// LED State processing loop | // LED State processing loop | ||||
unsigned int LED_currentEvent = 0; | |||||
inline uint8_t LED_scan() | inline uint8_t LED_scan() | ||||
{ | { | ||||
// Check for current change event | |||||
if ( LED_currentEvent ) | |||||
{ | |||||
// TODO dim LEDs in low power mode instead of shutting off | |||||
if ( LED_currentEvent < 150 ) | |||||
{ | |||||
// Enable Software shutdown of ISSI chip | |||||
LED_writeReg( 0x0A, 0x00, 0x0B ); | |||||
} | |||||
else | |||||
{ | |||||
// Disable Software shutdown of ISSI chip | |||||
LED_writeReg( 0x0A, 0x01, 0x0B ); | |||||
} | |||||
// I2C Busy | |||||
// S & I2C_S_BUSY | |||||
//I2C_S_BUSY | |||||
LED_currentEvent = 0; | |||||
} | |||||
return 0; | return 0; | ||||
} | } | ||||
// current - mA | // current - mA | ||||
void LED_currentChange( unsigned int current ) | void LED_currentChange( unsigned int current ) | ||||
{ | { | ||||
// TODO dim LEDs in low power mode instead of shutting off | |||||
if ( current < 150 ) | |||||
{ | |||||
// Enabled Software shutdown of ISSI chip | |||||
LED_writeReg( 0x0A, 0x00, 0x0B ); | |||||
} | |||||
else | |||||
{ | |||||
// Disable Software shutdown of ISSI chip | |||||
LED_writeReg( 0x0A, 0x01, 0x0B ); | |||||
} | |||||
// Delay action till next LED scan loop (as this callback sometimes occurs during interrupt requests) | |||||
LED_currentEvent = current; | |||||
} | } | ||||
0xFF, 0x00, /* C6-1 -> C6-16 */ | 0xFF, 0x00, /* C6-1 -> C6-16 */ | ||||
0xFF, 0x00, /* C7-1 -> C7-16 */ | 0xFF, 0x00, /* C7-1 -> C7-16 */ | ||||
0xFF, 0x00, /* C8-1 -> C8-16 */ | 0xFF, 0x00, /* C8-1 -> C8-16 */ | ||||
0xFE, 0x00, /* C9-1 -> C9-16 */ | |||||
0xFF, 0x00, /* C9-1 -> C9-16 */ | |||||
"; | "; | ||||
# LED Brightness Override | # LED Brightness Override | ||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */ | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */ | ||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */ | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */ | ||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */ | 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */ | ||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */ | |||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */ | |||||
"; | "; | ||||