35#include "drv_digital_out.h"
36#include "drv_digital_in.h"
37#include "drv_i2c_master.h"
38#include "drv_spi_master.h"
61#define PRESSURE16_REG_INT_CFG 0x0B
62#define PRESSURE16_REG_THR_P_L 0x0C
63#define PRESSURE16_REG_THR_P_H 0x0D
64#define PRESSURE16_REG_INTERFACE_CTRL 0x0E
65#define PRESSURE16_REG_DEVICE_ID 0x0F
66#define PRESSURE16_REG_CTRL_1 0x10
67#define PRESSURE16_REG_CTRL_2 0x11
68#define PRESSURE16_REG_CTRL_3 0x12
69#define PRESSURE16_REG_FIFO_CTRL 0x13
70#define PRESSURE16_REG_FIFO_WTM 0x14
71#define PRESSURE16_REG_REF_P_L 0x15
72#define PRESSURE16_REG_REF_P_H 0x16
73#define PRESSURE16_REG_OPC_P_L 0x18
74#define PRESSURE16_REG_OPC_P_H 0x19
75#define PRESSURE16_REG_INT_SOURCE 0x24
76#define PRESSURE16_REG_FIFO_STATUS_1 0x25
77#define PRESSURE16_REG_FIFO_STATUS_2 0x26
78#define PRESSURE16_REG_STATUS 0x27
79#define PRESSURE16_REG_DATA_P_XL 0x28
80#define PRESSURE16_REG_DATA_P_L 0x29
81#define PRESSURE16_REG_DATA_P_H 0x2A
82#define PRESSURE16_REG_DATA_T_L 0x2B
83#define PRESSURE16_REG_DATA_T_H 0x2C
84#define PRESSURE16_REG_FIFO_DATA_P_XL 0x78
85#define PRESSURE16_REG_FIFO_DATA_P_L 0x79
86#define PRESSURE16_REG_FIFO_DATA_P_H 0x7A
87#define PRESSURE16_REG_FIFO_DATA_T_L 0x7B
88#define PRESSURE16_REG_FIFO_DATA_T_H 0x7C
106#define PRESSURE16_SET_CTRL_ODR_POWER_DOWN_MODE 0x00
107#define PRESSURE16_SET_CTRL_ODR_1 0x01
108#define PRESSURE16_SET_CTRL_ODR_10 0x02
109#define PRESSURE16_SET_CTRL_ODR_25 0x03
110#define PRESSURE16_SET_CTRL_ODR_50 0x04
111#define PRESSURE16_SET_CTRL_ODR_75 0x05
112#define PRESSURE16_SET_CTRL_ODR_100 0x06
113#define PRESSURE16_SET_CTRL_ODR_200 0x07
115#define PRESSURE16_SET_CTRL_LPFP_DISABLE 0x00
116#define PRESSURE16_SET_CTRL_LPFP_ENABLE 0x01
118#define PRESSURE16_SET_CTRL_LPFP_DISABLE 0x00
119#define PRESSURE16_SET_CTRL_LPFP_ENABLE 0x01
121#define PRESSURE16_SET_BDU_DATA_UPDATES_CONTINUOUS 0x00
122#define PRESSURE16_SET_BDU_DATA_NOT_UPDATES_UNTIL_READ 0x01
124#define PRESSURE16_SET_SIM_SPI_4_WIRE_INTERFACE 0x00
125#define PRESSURE16_SET_SIM_SPI_3_WIRE_INTERFACE 0x01
127#define PRESSURE16_SET_BOOT_NORMAL_OPERATION 0x00
128#define PRESSURE16_SET_BOOT_REBOOT_MEMORY_CONTENT 0x01
130#define PRESSURE16_SET_INT_H_L_INTERRUPT_ACTIVE_HIGH 0x00
131#define PRESSURE16_SET_INT_H_L_INTERRUPT_ACTIVE_LOW 0x01
133#define PRESSURE16_SET_PP_OD_PUSH_PULL 0x00
134#define PRESSURE16_SET_PP_OD_OPEN_DRAIN 0x01
136#define PRESSURE16_SET_IF_ADD_INC_DISABLED 0x00
137#define PRESSURE16_SET_IF_ADD_INC_ENABLED 0x01
139#define PRESSURE16_SET_LOW_NOISE_ENABLE_LOW_POWER_MODE 0x00
140#define PRESSURE16_SET_LOW_NOISE_ENABLE_LOW_NOISE_MODE 0x01
142#define PRESSURE16_SET_ONE_SHOT_NORMAL_OPERATION 0x00
143#define PRESSURE16_SET_ONE_SHOT_NEW_DATA_SET_IS_ACQUIRED 0x01
145#define PRESSURE16_SET_INT_F_FULL_DISABLED 0x00
146#define PRESSURE16_SET_INT_F_FULL_ENABLED 0x01
148#define PRESSURE16_SET_INT_F_WTM_DISABLED 0x00
149#define PRESSURE16_SET_INT_F_WTM_ENABLED 0x01
151#define PRESSURE16_SET_INT_F_OVR_DISABLED 0x00
152#define PRESSURE16_SET_INT_F_OVR_ENABLED 0x01
154#define PRESSURE16_SET_DRDY_DISABLED 0x00
155#define PRESSURE16_SET_DRDY_ENABLED 0x01
157#define PRESSURE16_SET_INT_S_DATA_SIGNAL 0x00
158#define PRESSURE16_SET_INT_S_PRESSURE_HIGH_EVENT 0x01
159#define PRESSURE16_SET_INT_S_PRESSURE_LOW_EVENT 0x02
160#define PRESSURE16_SET_INT_S_PRESSURE_LOW_HIGH_EVENT 0x03
162#define PRESSURE16_SET_INT_CFG_AUTOREFP_DISABLED 0x00
163#define PRESSURE16_SET_INT_CFG_AUTOREFP_ENABLED 0x01
165#define PRESSURE16_SET_INT_CFG_RESET_ARP_NORMAL_MODE 0x00
166#define PRESSURE16_SET_INT_CFG_RESET_ARP_RST_AUTOREFP 0x01
168#define PRESSURE16_SET_INT_CFG_AUTOZERO_DISABLED 0x00
169#define PRESSURE16_SET_INT_CFG_AUTOZERO_ENABLED 0x01
171#define PRESSURE16_SET_INT_CFG_AUTOZERO_NORMAL_MODE 0x00
172#define PRESSURE16_SET_INT_CFG_RST_AUTOZERO 0x01
174#define PRESSURE16_SET_INT_CFG_DIFF_EN_DISABLED 0x00
175#define PRESSURE16_SET_INT_CFG_DIFF_EN_ENABLED 0x01
177#define PRESSURE16_SET_INT_CFG_LIR_INT_IS_NOT_LATCHED 0x00
178#define PRESSURE16_SET_INT_CFG_LIR_INT_IS_LATCHED 0x01
180#define PRESSURE16_SET_INT_CFG_PLE_INT_IS_INACTIVE 0x00
181#define PRESSURE16_SET_INT_CFG_PLE_INT_IS_ACTIVE 0x01
183#define PRESSURE16_SET_INT_CFG_PHE_INT_IS_INACTIVE 0x00
184#define PRESSURE16_SET_INT_CFG_PHE_INT_IS_ACTIVE 0x01
186#define PRESSURE16_SET_SW_RESET_BIT_MASK 0x04
193#define PRESSURE16_SET_DEV_ADDR_GND 0x5C
194#define PRESSURE16_SET_DEV_ADDR_VCC 0x5D
201#define PRESSURE16_DEVICE_ID 0xB3
219#define PRESSURE16_MAP_MIKROBUS( cfg, mikrobus ) \
220 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
221 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
222 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
223 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
224 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
225 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
226 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
err_t pressure16_get_press_temp(pressure16_t *ctx, float *pressure, float *temperature)
Pressure 16 get pressure and temperature function.
void pressure16_drv_interface_selection(pressure16_cfg_t *cfg, pressure16_drv_t drv_sel)
Pressure 16 driver interface setup function.
err_t pressure16_generic_read(pressure16_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Pressure 16 data reading function.
err_t pressure16_default_cfg(pressure16_t *ctx)
Pressure 16 default configuration function.
err_t pressure16_get_ctrl_config(pressure16_t *ctx, pressure16_ctrl_cfg_t *ctrl_cfg_data)
Pressure 16 get control configuration function.
uint8_t pressure16_get_interrupt(pressure16_t *ctx)
Pressure 16 get interrupt function.
err_t pressure16_set_ctrl_config(pressure16_t *ctx, pressure16_ctrl_cfg_t ctrl_cfg_data)
Pressure 16 set control configuration function.
err_t pressure16_get_temperature(pressure16_t *ctx, float *temperature)
Pressure 16 get temperature function.
err_t pressure16_get_interrupt_config(pressure16_t *ctx, pressure16_int_cfg_t *int_cfg_data)
Pressure 16 get interrupt configuration function.
err_t pressure16_get_pressure(pressure16_t *ctx, float *pressure)
Pressure 16 get pressure function.
err_t pressure16_set_interrupt_config(pressure16_t *ctx, pressure16_int_cfg_t int_cfg_data)
Pressure 16 set interrupt configuration function.
err_t pressure16_generic_write(pressure16_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Pressure 16 data writing function.
err_t pressure16_init(pressure16_t *ctx, pressure16_cfg_t *cfg)
Pressure 16 initialization function.
err_t pressure16_get_device_id(pressure16_t *ctx, uint8_t *dev_id)
Pressure 16 get device ID function.
err_t pressure16_sw_reset(pressure16_t *ctx)
Pressure 16 software reset function.
void pressure16_cfg_setup(pressure16_cfg_t *cfg)
Pressure 16 configuration object setup function.
pressure16_return_value_t
Pressure 16 Click return value data.
Definition: pressure16.h:342
@ PRESSURE16_OK
Definition: pressure16.h:343
@ PRESSURE16_ERROR
Definition: pressure16.h:344
err_t(* pressure16_master_io_t)(struct pressure16_s *, uint8_t, uint8_t *, uint8_t)
Pressure 16 Click driver interface.
Definition: pressure16.h:246
struct pressure16_s pressure16_t
Pressure 16 Click context object.
pressure16_drv_t
Pressure 16 Click driver selector.
Definition: pressure16.h:236
@ PRESSURE16_DRV_SEL_I2C
Definition: pressure16.h:238
@ PRESSURE16_DRV_SEL_SPI
Definition: pressure16.h:237
Pressure 16 Click configuration object.
Definition: pressure16.h:273
uint32_t i2c_speed
Definition: pressure16.h:282
spi_master_chip_select_polarity_t cs_polarity
Definition: pressure16.h:287
pressure16_drv_t drv_sel
Definition: pressure16.h:289
pin_name_t sck
Definition: pressure16.h:278
spi_master_mode_t spi_mode
Definition: pressure16.h:286
pin_name_t mosi
Definition: pressure16.h:277
uint32_t spi_speed
Definition: pressure16.h:285
pin_name_t scl
Definition: pressure16.h:274
pin_name_t int_pin
Definition: pressure16.h:280
pin_name_t miso
Definition: pressure16.h:276
pin_name_t sda
Definition: pressure16.h:275
pin_name_t cs
Definition: pressure16.h:279
uint8_t i2c_address
Definition: pressure16.h:283
Pressure 16 Click Control configuration object.
Definition: pressure16.h:316
uint8_t one_shot
Definition: pressure16.h:328
uint8_t bdu
Definition: pressure16.h:321
uint8_t pp_od
Definition: pressure16.h:325
uint8_t int_h_l
Definition: pressure16.h:324
uint8_t sim
Definition: pressure16.h:322
uint8_t int_s
Definition: pressure16.h:333
uint8_t int_f_ovr
Definition: pressure16.h:331
uint8_t if_add_inc
Definition: pressure16.h:326
uint8_t drdy
Definition: pressure16.h:332
uint8_t lpfp_cfg
Definition: pressure16.h:320
uint8_t low_noise_en
Definition: pressure16.h:327
uint8_t en_lpfp
Definition: pressure16.h:319
uint8_t int_f_full
Definition: pressure16.h:329
uint8_t boot
Definition: pressure16.h:323
uint8_t odr
Definition: pressure16.h:318
uint8_t int_f_wtm
Definition: pressure16.h:330
Pressure 16 Click Interrupt configuration object.
Definition: pressure16.h:298
uint8_t auto_zero
Definition: pressure16.h:302
uint8_t phe
Definition: pressure16.h:307
uint8_t lir
Definition: pressure16.h:305
uint8_t diff_en
Definition: pressure16.h:304
uint8_t auto_refp
Definition: pressure16.h:300
uint8_t ple
Definition: pressure16.h:306
uint8_t reset_az
Definition: pressure16.h:303
uint8_t reset_arp
Definition: pressure16.h:301
Pressure 16 Click context object.
Definition: pressure16.h:253
pressure16_master_io_t read_f
Definition: pressure16.h:264
spi_master_t spi
Definition: pressure16.h:257
pressure16_master_io_t write_f
Definition: pressure16.h:263
pressure16_drv_t drv_sel
Definition: pressure16.h:261
digital_in_t int_pin
Definition: pressure16.h:254
i2c_master_t i2c
Definition: pressure16.h:256
uint8_t slave_address
Definition: pressure16.h:259
pin_name_t chip_select
Definition: pressure16.h:260