Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
73 #define AMBIENT14_REG_ENABLE 0x80
74 #define AMBIENT14_REG_ATIME 0x81
75 #define AMBIENT14_REG_PRATE 0x82
76 #define AMBIENT14_REG_AWTIME 0x83
77 #define AMBIENT14_REG_AILTL 0x84
78 #define AMBIENT14_REG_AILTH 0x85
79 #define AMBIENT14_REG_AIHTL 0x86
80 #define AMBIENT14_REG_AIHTH 0x87
81 #define AMBIENT14_REG_PILTL 0x88
82 #define AMBIENT14_REG_PILTH 0x89
83 #define AMBIENT14_REG_PIHTL 0x8A
84 #define AMBIENT14_REG_PIHTH 0x8B
85 #define AMBIENT14_REG_PERS 0x8C
86 #define AMBIENT14_REG_CFG0 0x8D
87 #define AMBIENT14_REG_PCFG0 0x8E
88 #define AMBIENT14_REG_PCFG1 0x8F
89 #define AMBIENT14_REG_PCFG2 0x90
90 #define AMBIENT14_REG_CFG1 0x91
91 #define AMBIENT14_REG_REVID 0x92
92 #define AMBIENT14_REG_ID 0x93
93 #define AMBIENT14_REG_STATUS 0x94
94 #define AMBIENT14_REG_ALSL 0x95
95 #define AMBIENT14_REG_ALSH 0x96
96 #define AMBIENT14_REG_IRL 0x97
97 #define AMBIENT14_REG_IRH 0x98
98 #define AMBIENT14_REG_PDATAL 0x99
99 #define AMBIENT14_REG_PDATAH 0x9A
100 #define AMBIENT14_REG_REVID2 0xA6
101 #define AMBIENT14_REG_SOFTRST 0xA8
102 #define AMBIENT14_REG_PWTIME 0xA9
103 #define AMBIENT14_REG_CFG8 0xAA
104 #define AMBIENT14_REG_CFG3 0xAB
105 #define AMBIENT14_REG_CFG6 0xAE
106 #define AMBIENT14_REG_POFFSETL 0xC0
107 #define AMBIENT14_REG_POFFSETH 0xC1
108 #define AMBIENT14_REG_CALIB 0xD7
109 #define AMBIENT14_REG_CALIB_OFFSET 0xD8
110 #define AMBIENT14_REG_CALIBCFG 0xD9
111 #define AMBIENT14_REG_CALIBSTAT 0xDC
112 #define AMBIENT14_REG_INTENAB 0xDD
113 #define AMBIENT14_REG_FAC_L 0xE6
114 #define AMBIENT14_REG_FAC_H 0xE7
115 #define AMBIENT14_REG_TEST9 0xF9
133 #define AMBIENT14_ENABLE_PWEN 0x10
134 #define AMBIENT14_ENABLE_AWEN 0x08
135 #define AMBIENT14_ENABLE_PEN 0x04
136 #define AMBIENT14_ENABLE_AEN 0x02
137 #define AMBIENT14_ENABLE_PON 0x01
143 #define AMBIENT14_SOFT_RESET 0x01
149 #define AMBIENT14_PCFG0_PGAIN1_1X 0x00
150 #define AMBIENT14_PCFG0_PGAIN1_2X 0x40
151 #define AMBIENT14_PCFG0_PGAIN1_4X 0x80
152 #define AMBIENT14_PCFG0_PGAIN1_8X 0xC0
153 #define AMBIENT14_PCFG0_PGAIN1_MASK 0xC0
154 #define AMBIENT14_PCFG0_PPULSE_MIN 0x00
155 #define AMBIENT14_PCFG0_PPULSE_DEFAULT 0x01
156 #define AMBIENT14_PCFG0_PPULSE_MAX 0x3F
157 #define AMBIENT14_PCFG0_PPULSE_MASK 0x3F
163 #define AMBIENT14_PCFG1_PPULSE_LENH_DEFAULT 0x00
164 #define AMBIENT14_PCFG1_PPULSE_LENH_MASK 0xC0
165 #define AMBIENT14_PCFG1_RESERVED 0x30
166 #define AMBIENT14_PCFG1_PLDRIVE_7_MA 0x05
167 #define AMBIENT14_PCFG1_PLDRIVE_8_MA 0x06
168 #define AMBIENT14_PCFG1_PLDRIVE_9_MA 0x07
169 #define AMBIENT14_PCFG1_PLDRIVE_10_MA 0x08
170 #define AMBIENT14_PCFG1_PLDRIVE_MASK 0x0F
176 #define AMBIENT14_PCFG2_PPULSE_LENL_DEFAULT 0x20
177 #define AMBIENT14_PCFG2_PPULSE_LENL_MASK 0xFF
183 #define AMBIENT14_CFG1_PGAIN2_2_5X 0x00
184 #define AMBIENT14_CFG1_PGAIN2_5X 0x20
185 #define AMBIENT14_CFG1_PGAIN2_10X 0x60
186 #define AMBIENT14_CFG1_PGAIN2_MASK 0x60
187 #define AMBIENT14_CFG1_AGAIN_16X 0x05
188 #define AMBIENT14_CFG1_AGAIN_128X 0x08
189 #define AMBIENT14_CFG1_AGAIN_1024X 0x0B
190 #define AMBIENT14_CFG1_AGAIN_MASK 0x1F
196 #define AMBIENT14_CFG8_RESERVED 0x29
202 #define AMBIENT14_CFG6_APC_ENABLE 0x00
203 #define AMBIENT14_CFG6_APC_DISABLE 0x40
204 #define AMBIENT14_CFG6_RESERVED 0x3F
210 #define AMBIENT14_STATUS_ASAT 0x80
211 #define AMBIENT14_STATUS_PSAT 0x40
212 #define AMBIENT14_STATUS_PINT 0x20
213 #define AMBIENT14_STATUS_AINT 0x10
214 #define AMBIENT14_STATUS_CINT 0x08
215 #define AMBIENT14_STATUS_ZINT 0x04
216 #define AMBIENT14_STATUS_PSAT_REFLECTIVE 0x02
217 #define AMBIENT14_STATUS_PSAT_AMBIENT 0x01
218 #define AMBIENT14_STATUS_CLEAR_ALL 0xFF
224 #define AMBIENT14_INTENAB_ASIEN 0x80
225 #define AMBIENT14_INTENAB_PSIEN 0x40
226 #define AMBIENT14_INTENAB_PIEN 0x20
227 #define AMBIENT14_INTENAB_AIEN 0x10
228 #define AMBIENT14_INTENAB_CIEN 0x08
229 #define AMBIENT14_INTENAB_ZIEN 0x04
230 #define AMBIENT14_INTENAB_DISABLE 0x00
236 #define AMBIENT14_CALIB_CALAVG 0x80
237 #define AMBIENT14_CALIB_ELECTRICAL_CALIB 0x20
238 #define AMBIENT14_CALIB_CALPRATE 0x10
239 #define AMBIENT14_CALIB_START_OFFSET_CAL 0x01
245 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_3 0x00
246 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_7 0x20
247 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_15 0x40
248 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_31 0x60
249 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_63 0x80
250 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_127 0xA0
251 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_255 0xC0
252 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_511 0xE0
253 #define AMBIENT14_CALIBCFG_BINSRCH_TARGET_MASK 0xE0
254 #define AMBIENT14_CALIBCFG_RESERVED 0x10
255 #define AMBIENT14_CALIBCFG_AUTO_OFFSET_ADJ 0x08
256 #define AMBIENT14_CALIBCFG_PROX_AVG_DISABLE 0x00
257 #define AMBIENT14_CALIBCFG_PROX_AVG_2 0x01
258 #define AMBIENT14_CALIBCFG_PROX_AVG_4 0x02
259 #define AMBIENT14_CALIBCFG_PROX_AVG_8 0x03
260 #define AMBIENT14_CALIBCFG_PROX_AVG_16 0x04
261 #define AMBIENT14_CALIBCFG_PROX_AVG_MASK 0x07
267 #define AMBIENT14_CALIBSTAT_OFFSET_ADJUSTED 0x04
268 #define AMBIENT14_CALIBSTAT_CALIB_FINISHED 0x01
274 #define AMBIENT14_SINGLE_STEP_MS 2.78f
275 #define AMBIENT14_ATIME_MAX ( 256 * AMBIENT14_SINGLE_STEP_MS )
276 #define AMBIENT14_ATIME_MIN AMBIENT14_SINGLE_STEP_MS
277 #define AMBIENT14_ATIME_DEFAULT 100.0f
278 #define AMBIENT14_AWTIME_MAX ( 256 * AMBIENT14_SINGLE_STEP_MS )
279 #define AMBIENT14_AWTIME_MIN AMBIENT14_SINGLE_STEP_MS
280 #define AMBIENT14_AWTIME_DEFAULT 50.0f
281 #define AMBIENT14_PWTIME_MAX ( 256 * AMBIENT14_SINGLE_STEP_MS )
282 #define AMBIENT14_PWTIME_MIN AMBIENT14_SINGLE_STEP_MS
283 #define AMBIENT14_PWTIME_DEFAULT 500.0f
284 #define AMBIENT14_ROUND_TO_INT 0.5f
290 #define AMBIENT14_ILLUMINANCE_GAIN_16_TO_128 0.125f
291 #define AMBIENT14_ILLUMINANCE_ATIME_100_GAIN_128 0.0095f
292 #define AMBIENT14_ILLUMINANCE_GAIN_1024_TO_128 8.2f
298 #define AMBIENT14_DEVICE_ID 0x50
305 #define AMBIENT14_DEVICE_ADDRESS 0x39
323 #define AMBIENT14_MAP_MIKROBUS( cfg, mikrobus ) \
324 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
325 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
326 cfg.sby = MIKROBUS( mikrobus, MIKROBUS_RST ); \
327 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
640 #endif // AMBIENT14_H
err_t ambient14_write_reg(ambient14_t *ctx, uint8_t reg, uint8_t data_in)
Ambient 14 write reg function.
pin_name_t scl
Definition: ambient14.h:358
err_t ambient14_default_cfg(ambient14_t *ctx)
Ambient 14 default configuration function.
@ AMBIENT14_OK
Definition: ambient14.h:375
uint8_t slave_address
Definition: ambient14.h:348
err_t ambient14_write_regs(ambient14_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Ambient 14 write regs function.
uint8_t ambient14_get_int_pin(ambient14_t *ctx)
Ambient 14 get int pin function.
err_t ambient14_get_illuminance(ambient14_t *ctx, uint16_t als_data, float *illuminance)
Ambient 14 get illuminance function.
ambient14_return_value_t
Ambient 14 Click return value data.
Definition: ambient14.h:374
err_t ambient14_set_pwtime(ambient14_t *ctx, float pwtime_ms)
Ambient 14 set pwtime function.
@ AMBIENT14_ERROR
Definition: ambient14.h:376
digital_out_t sby
Definition: ambient14.h:339
uint32_t i2c_speed
Definition: ambient14.h:364
err_t ambient14_read_proximity(ambient14_t *ctx, uint16_t *prox_data)
Ambient 14 read proximity function.
Ambient 14 Click configuration object.
Definition: ambient14.h:357
err_t ambient14_set_awtime(ambient14_t *ctx, float awtime_ms)
Ambient 14 set awtime function.
err_t ambient14_read_reg(ambient14_t *ctx, uint8_t reg, uint8_t *data_out)
Ambient 14 read reg function.
Ambient 14 Click context object.
Definition: ambient14.h:337
i2c_master_t i2c
Definition: ambient14.h:345
err_t ambient14_set_atime(ambient14_t *ctx, float atime_ms)
Ambient 14 set atime function.
void ambient14_disable_device(ambient14_t *ctx)
Ambient 14 disable device function.
uint8_t i2c_address
Definition: ambient14.h:365
err_t ambient14_read_regs(ambient14_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Ambient 14 read regs function.
pin_name_t sby
Definition: ambient14.h:361
err_t ambient14_check_communication(ambient14_t *ctx)
Ambient 14 check communication function.
err_t ambient14_init(ambient14_t *ctx, ambient14_cfg_t *cfg)
Ambient 14 initialization function.
err_t ambient14_clear_interrupts(ambient14_t *ctx)
Ambient 14 clear interrupts function.
pin_name_t sda
Definition: ambient14.h:359
err_t ambient14_soft_reset(ambient14_t *ctx)
Ambient 14 soft reset function.
void ambient14_enable_device(ambient14_t *ctx)
Ambient 14 enable device function.
pin_name_t int_pin
Definition: ambient14.h:362
digital_in_t int_pin
Definition: ambient14.h:342
err_t ambient14_read_als_ir(ambient14_t *ctx, uint16_t *als_data, uint16_t *ir_data)
Ambient 14 read als ir function.
void ambient14_cfg_setup(ambient14_cfg_t *cfg)
Ambient 14 configuration object setup function.