mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	support modifying the apds9960 settings (#3708)
Co-authored-by: Samuel Sieb <samuel@sieb.net> Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
		| @@ -46,16 +46,16 @@ void APDS9960::setup() { | ||||
|   uint8_t val = 0; | ||||
|   APDS9960_ERROR_CHECK(this->read_byte(0x8F, &val)); | ||||
|   val &= 0b00111111; | ||||
|   uint8_t led_drive = 0;  // led drive, 0 -> 100mA, 1 -> 50mA, 2 -> 25mA, 3 -> 12.5mA | ||||
|   val |= (led_drive & 0b11) << 6; | ||||
|   // led drive, 0 -> 100mA, 1 -> 50mA, 2 -> 25mA, 3 -> 12.5mA | ||||
|   val |= (this->led_drive_ & 0b11) << 6; | ||||
|  | ||||
|   val &= 0b11110011; | ||||
|   uint8_t proximity_gain = 2;  // proximity gain, 0 -> 1x, 1 -> 2X, 2 -> 4X, 4 -> 8X | ||||
|   val |= (proximity_gain & 0b11) << 2; | ||||
|   // proximity gain, 0 -> 1x, 1 -> 2X, 2 -> 4X, 3 -> 8X | ||||
|   val |= (this->proximity_gain_ & 0b11) << 2; | ||||
|  | ||||
|   val &= 0b11111100; | ||||
|   uint8_t ambient_gain = 1;  // ambient light gain, 0 -> 1x, 1 -> 4x, 2 -> 16x, 3 -> 64x | ||||
|   val |= (ambient_gain & 0b11) << 0; | ||||
|   // ambient light gain, 0 -> 1x, 1 -> 4x, 2 -> 16x, 3 -> 64x | ||||
|   val |= (this->ambient_gain_ & 0b11) << 0; | ||||
|   APDS9960_WRITE_BYTE(0x8F, val); | ||||
|  | ||||
|   // Pers (0x8C) -> 0x11 (2 consecutive proximity or ALS for interrupt) | ||||
| @@ -75,19 +75,18 @@ void APDS9960::setup() { | ||||
|   // GConf 2 (0xA3, gesture config 2) -> | ||||
|   APDS9960_ERROR_CHECK(this->read_byte(0xA3, &val)); | ||||
|   val &= 0b10011111; | ||||
|   uint8_t gesture_gain = 2;  // gesture gain, 0 -> 1x, 1 -> 2x, 2 -> 4x, 3 -> 8x | ||||
|   val |= (gesture_gain & 0b11) << 5; | ||||
|   // gesture gain, 0 -> 1x, 1 -> 2x, 2 -> 4x, 3 -> 8x | ||||
|   val |= (this->gesture_gain_ & 0b11) << 5; | ||||
|  | ||||
|   val &= 0b11100111; | ||||
|   uint8_t gesture_led_drive = 0;  // gesture led drive, 0 -> 100mA, 1 -> 50mA, 2 -> 25mA, 3 -> 12.5mA | ||||
|   val |= (gesture_led_drive & 0b11) << 3; | ||||
|   // gesture led drive, 0 -> 100mA, 1 -> 50mA, 2 -> 25mA, 3 -> 12.5mA | ||||
|   val |= (this->gesture_led_drive_ & 0b11) << 3; | ||||
|  | ||||
|   val &= 0b11111000; | ||||
|   // gesture wait time | ||||
|   // 0 -> 0ms, 1 -> 2.8ms, 2 -> 5.6ms, 3 -> 8.4ms | ||||
|   // 4 -> 14.0ms, 5 -> 22.4 ms, 6 -> 30.8ms, 7 -> 39.2 ms | ||||
|   uint8_t gesture_wait_time = 1;  // gesture wait time | ||||
|   val |= (gesture_wait_time & 0b111) << 0; | ||||
|   val |= (this->gesture_wait_time_ & 0b111) << 0; | ||||
|   APDS9960_WRITE_BYTE(0xA3, val); | ||||
|  | ||||
|   // GOffsetU (0xA4) -> 0x00 (no offset) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user