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 PROXIMITY20_REG_PS_CONF1 0x00
74 #define PROXIMITY20_REG_PS_CONF2 0x01
75 #define PROXIMITY20_REG_PS_CONF3 0x02
76 #define PROXIMITY20_REG_PS_THDL 0x03
77 #define PROXIMITY20_REG_PS_THDH 0x04
78 #define PROXIMITY20_REG_PS_CANC 0x05
79 #define PROXIMITY20_REG_PS_DATA 0xF8
80 #define PROXIMITY20_REG_INT_FLAG 0xF9
81 #define PROXIMITY20_REG_ID 0xFA
99 #define PROXIMITY20_PS_CONF1_PS_HD_DIS 0x0000
100 #define PROXIMITY20_PS_CONF1_PS_HD_EN 0x4000
101 #define PROXIMITY20_PS_CONF1_PS_HD_MASK 0x4000
102 #define PROXIMITY20_PS_CONF1_PS_SP_INT_DIS 0x0000
103 #define PROXIMITY20_PS_CONF1_PS_SP_INT_EN 0x2000
104 #define PROXIMITY20_PS_CONF1_PS_SP_INT_MASK 0x2000
105 #define PROXIMITY20_PS_CONF1_PS_SMART_PERS_DIS 0x0000
106 #define PROXIMITY20_PS_CONF1_PS_SMART_PERS_EN 0x1000
107 #define PROXIMITY20_PS_CONF1_PS_SMART_PERS_MASK 0x1000
108 #define PROXIMITY20_PS_CONF1_PS_PERS_1 0x0000
109 #define PROXIMITY20_PS_CONF1_PS_PERS_2 0x0400
110 #define PROXIMITY20_PS_CONF1_PS_PERS_3 0x0800
111 #define PROXIMITY20_PS_CONF1_PS_PERS_4 0x0C00
112 #define PROXIMITY20_PS_CONF1_PS_PERS_MASK 0x0C00
113 #define PROXIMITY20_PS_CONF1_PS_INT_DIS 0x0000
114 #define PROXIMITY20_PS_CONF1_PS_INT_LOGIC_H 0x0100
115 #define PROXIMITY20_PS_CONF1_PS_INT_TRIG_HL 0x0300
116 #define PROXIMITY20_PS_CONF1_PS_INT_MASK 0x0300
117 #define PROXIMITY20_PS_CONF1_PS_CAL_DIS 0x0000
118 #define PROXIMITY20_PS_CONF1_PS_CAL_EN 0x0080
119 #define PROXIMITY20_PS_CONF1_PS_CAL_MASK 0x0080
120 #define PROXIMITY20_PS_CONF1_PS_ON_DIS 0x0000
121 #define PROXIMITY20_PS_CONF1_PS_ON_EN 0x0001
122 #define PROXIMITY20_PS_CONF1_PS_ON_MASK 0x0001
128 #define PROXIMITY20_PS_CONF2_PS_SENS_NORMAL 0x0000
129 #define PROXIMITY20_PS_CONF2_PS_SENS_HIGH 0x2000
130 #define PROXIMITY20_PS_CONF2_PS_SENS_MASK 0x2000
131 #define PROXIMITY20_PS_CONF2_PS_OFFSET_DIS 0x0000
132 #define PROXIMITY20_PS_CONF2_PS_OFFSET_EN 0x1000
133 #define PROXIMITY20_PS_CONF2_PS_OFFSET_MASK 0x1000
134 #define PROXIMITY20_PS_CONF2_PS_CURRENT_7_MA 0x0000
135 #define PROXIMITY20_PS_CONF2_PS_CURRENT_9_MA 0x0100
136 #define PROXIMITY20_PS_CONF2_PS_CURRENT_11_MA 0x0200
137 #define PROXIMITY20_PS_CONF2_PS_CURRENT_12_MA 0x0300
138 #define PROXIMITY20_PS_CONF2_PS_CURRENT_15_MA 0x0400
139 #define PROXIMITY20_PS_CONF2_PS_CURRENT_17_MA 0x0500
140 #define PROXIMITY20_PS_CONF2_PS_CURRENT_19_MA 0x0600
141 #define PROXIMITY20_PS_CONF2_PS_CURRENT_20_MA 0x0700
142 #define PROXIMITY20_PS_CONF2_PS_CURRENT_MASK 0x0700
143 #define PROXIMITY20_PS_CONF2_PS_PERIOD_50_MS 0x0000
144 #define PROXIMITY20_PS_CONF2_PS_PERIOD_100_MS 0x0040
145 #define PROXIMITY20_PS_CONF2_PS_PERIOD_200_MS 0x0080
146 #define PROXIMITY20_PS_CONF2_PS_PERIOD_400_MS 0x00C0
147 #define PROXIMITY20_PS_CONF2_PS_PERIOD_MASK 0x00C0
148 #define PROXIMITY20_PS_CONF2_PS_IT_1T 0x0000
149 #define PROXIMITY20_PS_CONF2_PS_IT_2T 0x0010
150 #define PROXIMITY20_PS_CONF2_PS_IT_4T 0x0020
151 #define PROXIMITY20_PS_CONF2_PS_IT_8T 0x0030
152 #define PROXIMITY20_PS_CONF2_PS_IT_MASK 0x0030
153 #define PROXIMITY20_PS_CONF2_PS_MPS_1 0x0000
154 #define PROXIMITY20_PS_CONF2_PS_MPS_2 0x0004
155 #define PROXIMITY20_PS_CONF2_PS_MPS_4 0x0008
156 #define PROXIMITY20_PS_CONF2_PS_MPS_8 0x000C
157 #define PROXIMITY20_PS_CONF2_PS_MPS_MASK 0x000C
158 #define PROXIMITY20_PS_CONF2_PS_ITB_25_US 0x0000
159 #define PROXIMITY20_PS_CONF2_PS_ITB_50_US 0x0002
160 #define PROXIMITY20_PS_CONF2_PS_ITB_MASK 0x0002
161 #define PROXIMITY20_PS_CONF2_PS_GAIN_X1 0x0000
162 #define PROXIMITY20_PS_CONF2_PS_GAIN_X2 0x0001
163 #define PROXIMITY20_PS_CONF2_PS_GAIN_MASK 0x0001
169 #define PROXIMITY20_PS_CONF3_PS_SPERIOD_DIS 0x0000
170 #define PROXIMITY20_PS_CONF3_PS_SPERIOD_6_25_MS 0x4000
171 #define PROXIMITY20_PS_CONF3_PS_SPERIOD_12_5_MS 0x8000
172 #define PROXIMITY20_PS_CONF3_PS_SPERIOD_25_MS 0xC000
173 #define PROXIMITY20_PS_CONF3_PS_SPERIOD_MASK 0xC000
174 #define PROXIMITY20_PS_CONF3_PS_SC_DIS 0x0000
175 #define PROXIMITY20_PS_CONF3_PS_SC_EN 0x1C00
176 #define PROXIMITY20_PS_CONF3_PS_SC_MASK 0x1C00
177 #define PROXIMITY20_PS_CONF3_PS_TRIG_OFF 0x0000
178 #define PROXIMITY20_PS_CONF3_PS_TRIG_ON 0x0020
179 #define PROXIMITY20_PS_CONF3_PS_TRIG_MASK 0x0020
180 #define PROXIMITY20_PS_CONF3_PS_MODE_AUTO 0x0000
181 #define PROXIMITY20_PS_CONF3_PS_MODE_FORCE 0x0010
182 #define PROXIMITY20_PS_CONF3_PS_MODE_MASK 0x0010
188 #define PROXIMITY20_INT_FLAG_PS_SPFLAG 0x1000
189 #define PROXIMITY20_INT_FLAG_PS_IF_CLOSE 0x0200
190 #define PROXIMITY20_INT_FLAG_PS_IF_AWAY 0x0100
196 #define PROXIMITY20_DEVICE_ID_U2 0x0129
197 #define PROXIMITY20_DEVICE_ID_U3 0x0128
204 #define PROXIMITY20_DEVICE_ADDRESS_U2 0x51
205 #define PROXIMITY20_DEVICE_ADDRESS_U3 0x60
223 #define PROXIMITY20_MAP_MIKROBUS( cfg, mikrobus ) \
224 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
225 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
226 cfg.en = MIKROBUS( mikrobus, MIKROBUS_RST ); \
227 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
427 #endif // PROXIMITY20_H
digital_out_t en
Definition: proximity20.h:239
err_t proximity20_init(proximity20_t *ctx, proximity20_cfg_t *cfg)
Proximity 20 initialization function.
i2c_master_t i2c
Definition: proximity20.h:245
@ PROXIMITY20_ERROR
Definition: proximity20.h:276
void proximity20_enable_device(proximity20_t *ctx)
Proximity 20 enable device function.
uint8_t i2c_address
Definition: proximity20.h:265
Proximity 20 Click context object.
Definition: proximity20.h:237
void proximity20_disable_device(proximity20_t *ctx)
Proximity 20 disable device function.
err_t proximity20_set_device_address(proximity20_t *ctx, uint8_t dev_addr)
Proximity 20 set device address function.
err_t proximity20_read_register(proximity20_t *ctx, uint8_t reg, uint16_t *data_out)
Proximity 20 read register function.
Proximity 20 Click configuration object.
Definition: proximity20.h:257
digital_in_t int_pin
Definition: proximity20.h:242
uint32_t i2c_speed
Definition: proximity20.h:264
void proximity20_cfg_setup(proximity20_cfg_t *cfg)
Proximity 20 configuration object setup function.
err_t proximity20_write_register(proximity20_t *ctx, uint8_t reg, uint16_t data_in)
Proximity 20 write register function.
pin_name_t en
Definition: proximity20.h:261
uint8_t slave_address
Definition: proximity20.h:248
uint8_t proximity20_get_int_pin(proximity20_t *ctx)
Proximity 20 get int pin function.
pin_name_t sda
Definition: proximity20.h:259
proximity20_return_value_t
Proximity 20 Click return value data.
Definition: proximity20.h:274
err_t proximity20_read_proximity(proximity20_t *ctx, uint16_t *ps_data_u2, uint16_t *ps_data_u3)
Proximity 20 read proximity function.
pin_name_t scl
Definition: proximity20.h:258
err_t proximity20_check_communication(proximity20_t *ctx)
Proximity 20 check communication function.
@ PROXIMITY20_OK
Definition: proximity20.h:275
pin_name_t int_pin
Definition: proximity20.h:262
err_t proximity20_default_cfg(proximity20_t *ctx)
Proximity 20 default configuration function.