|
34 | 34 | import time |
35 | 35 |
|
36 | 36 | import adafruit_bus_device.i2c_device as i2cdevice |
37 | | -from adafruit_register.i2c_bit import RWBit |
| 37 | +from adafruit_register.i2c_bit import ROBit, RWBit |
38 | 38 | from adafruit_register.i2c_bits import RWBits |
39 | | -from adafruit_register.i2c_struct import ROUnaryStruct |
| 39 | +from adafruit_register.i2c_struct import ROUnaryStruct, UnaryStruct |
40 | 40 | from micropython import const |
41 | 41 |
|
42 | 42 | try: |
@@ -144,9 +144,11 @@ class VEML7700: |
144 | 144 | time.sleep(0.1) |
145 | 145 | """ |
146 | 146 |
|
147 | | - # ALS_CONF_0 - ALS gain, integration time, shutdown. |
| 147 | + # ALS_CONF_0 - ALS gain, integration time, interrupt, and shutdown. |
148 | 148 | light_shutdown = RWBit(0x00, 0, register_width=2) |
149 | 149 | """Ambient light sensor shutdown. When ``True``, ambient light sensor is disabled.""" |
| 150 | + light_interrupt = RWBit(0x00, 1, register_width=2) |
| 151 | + """Enable interrupt. ``True`` to enable, ``False`` to disable.""" |
150 | 152 | light_gain = RWBits(2, 0x00, 11, register_width=2) |
151 | 153 | """Ambient light gain setting. Gain settings are 2, 1, 1/4 and 1/8. Settings options are: |
152 | 154 | ALS_GAIN_2, ALS_GAIN_1, ALS_GAIN_1_4, ALS_GAIN_1_8. |
@@ -193,6 +195,18 @@ class VEML7700: |
193 | 195 |
|
194 | 196 | """ |
195 | 197 |
|
| 198 | + # ALS_WH - ALS high threshold window setting |
| 199 | + light_high_threshold = UnaryStruct(0x01, "<H") |
| 200 | + """Ambient light sensor interrupt high threshold setting.""" |
| 201 | + # ALS_WL - ALS low threshold window setting |
| 202 | + light_low_threshold = UnaryStruct(0x02, "<H") |
| 203 | + """Ambient light sensor interrupt low threshold setting.""" |
| 204 | + # ALS_INT - ALS INT trigger event |
| 205 | + light_interrupt_high = ROBit(0x06, 14, register_width=2) |
| 206 | + """Ambient light high threshold interrupt flag. Triggered when high threshold exceeded.""" |
| 207 | + light_interrupt_low = ROBit(0x06, 15, register_width=2) |
| 208 | + """Ambient light low threshold interrupt flag. Triggered when low threshold exceeded.""" |
| 209 | + |
196 | 210 | def __init__(self, i2c_bus: I2C, address: int = 0x10) -> None: |
197 | 211 | self.i2c_device = i2cdevice.I2CDevice(i2c_bus, address) |
198 | 212 | for _ in range(3): |
|
0 commit comments