Fixing potential WF LED issue
- Added fix for USB Current Change * If called during interrupt, could hang the I2C bus * Delaying I2C writes till scan loop
This commit is contained in:
		
							parent
							
								
									f57e069bb9
								
							
						
					
					
						commit
						074134c474
					
				
					 2 changed files with 21 additions and 16 deletions
				
			
		|  | @ -639,12 +639,26 @@ uint8_t I2C_Send( uint8_t *data, uint8_t sendLen, uint8_t recvLen ) | |||
| 
 | ||||
| 
 | ||||
| // LED State processing loop
 | ||||
| unsigned int LED_currentEvent = 0; | ||||
| 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; | ||||
| } | ||||
|  | @ -654,17 +668,8 @@ inline uint8_t LED_scan() | |||
| // current - mA
 | ||||
| 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; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -95,7 +95,7 @@ ISSILedMask1 = " | |||
| 	0xFF, 0x00, /* C6-1 -> C6-16 */ | ||||
| 	0xFF, 0x00, /* C7-1 -> C7-16 */ | ||||
| 	0xFF, 0x00, /* C8-1 -> C8-16 */ | ||||
| 	0xFE, 0x00, /* C9-1 -> C9-16 */ | ||||
| 	0xFF, 0x00, /* C9-1 -> C9-16 */ | ||||
| "; | ||||
| 
 | ||||
| # LED Brightness Override | ||||
|  | @ -124,6 +124,6 @@ ISSILedBrightness1 = " | |||
| 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, /* 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 */ | ||||
| "; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jacob Alexander
						Jacob Alexander