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 )
ambient14_return_value_t
Ambient 14 Click return value data.
Definition ambient14.h:374
@ AMBIENT14_OK
Definition ambient14.h:375
@ AMBIENT14_ERROR
Definition ambient14.h:376
err_t ambient14_set_pwtime(ambient14_t *ctx, float pwtime_ms)
Ambient 14 set pwtime function.
err_t ambient14_set_atime(ambient14_t *ctx, float atime_ms)
Ambient 14 set atime function.
void ambient14_cfg_setup(ambient14_cfg_t *cfg)
Ambient 14 configuration object setup function.
err_t ambient14_get_illuminance(ambient14_t *ctx, uint16_t als_data, float *illuminance)
Ambient 14 get illuminance function.
void ambient14_disable_device(ambient14_t *ctx)
Ambient 14 disable device function.
err_t ambient14_write_regs(ambient14_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Ambient 14 write regs function.
err_t ambient14_read_regs(ambient14_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Ambient 14 read regs function.
err_t ambient14_init(ambient14_t *ctx, ambient14_cfg_t *cfg)
Ambient 14 initialization function.
err_t ambient14_set_awtime(ambient14_t *ctx, float awtime_ms)
Ambient 14 set awtime function.
err_t ambient14_write_reg(ambient14_t *ctx, uint8_t reg, uint8_t data_in)
Ambient 14 write reg function.
err_t ambient14_clear_interrupts(ambient14_t *ctx)
Ambient 14 clear interrupts function.
err_t ambient14_read_als_ir(ambient14_t *ctx, uint16_t *als_data, uint16_t *ir_data)
Ambient 14 read als ir function.
err_t ambient14_read_reg(ambient14_t *ctx, uint8_t reg, uint8_t *data_out)
Ambient 14 read reg function.
void ambient14_enable_device(ambient14_t *ctx)
Ambient 14 enable device function.
err_t ambient14_read_proximity(ambient14_t *ctx, uint16_t *prox_data)
Ambient 14 read proximity function.
err_t ambient14_check_communication(ambient14_t *ctx)
Ambient 14 check communication function.
err_t ambient14_default_cfg(ambient14_t *ctx)
Ambient 14 default configuration function.
err_t ambient14_soft_reset(ambient14_t *ctx)
Ambient 14 soft reset function.
uint8_t ambient14_get_int_pin(ambient14_t *ctx)
Ambient 14 get int pin function.
Ambient 14 Click configuration object.
Definition ambient14.h:357
uint32_t i2c_speed
Definition ambient14.h:364
pin_name_t scl
Definition ambient14.h:358
pin_name_t int_pin
Definition ambient14.h:362
pin_name_t sda
Definition ambient14.h:359
pin_name_t sby
Definition ambient14.h:361
uint8_t i2c_address
Definition ambient14.h:365
Ambient 14 Click context object.
Definition ambient14.h:337
digital_in_t int_pin
Definition ambient14.h:342
i2c_master_t i2c
Definition ambient14.h:345
digital_out_t sby
Definition ambient14.h:339
uint8_t slave_address
Definition ambient14.h:348