vibromotor3  2.0.0.0
vibromotor3.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef VIBROMOTOR3_H
29 #define VIBROMOTOR3_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
39 #ifdef PREINIT_SUPPORTED
40 #include "preinit.h"
41 #endif
42 
43 #ifdef MikroCCoreVersion
44  #if MikroCCoreVersion >= 1
45  #include "delays.h"
46  #endif
47 #endif
48 
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
52 #include "drv_pwm.h"
53 
74 #define VIBROMOTOR3_STATUS 0x00
75 #define VIBROMOTOR3_MODE 0x01
76 #define VIBROMOTOR3_RT_PB_IN 0x02
77 #define VIBROMOTOR3_LIB_SEL 0x03
78 #define VIBROMOTOR3_WV_SEQ_1 0x04
79 #define VIBROMOTOR3_WV_SEQ_2 0x05
80 #define VIBROMOTOR3_WV_SEQ_3 0x06
81 #define VIBROMOTOR3_WV_SEQ_4 0x07
82 #define VIBROMOTOR3_WV_SEQ_5 0x08
83 #define VIBROMOTOR3_WV_SEQ_6 0x09
84 #define VIBROMOTOR3_WV_SEQ_7 0x0A
85 #define VIBROMOTOR3_WV_SEQ_8 0x0B
86 #define VIBROMOTOR3_REG_GO 0x0C
87 #define VIBROMOTOR3_OVERDRIVE_OFFS 0x0D
88 #define VIBROMOTOR3_SUSTAIN_P_OFFS 0x0E
89 #define VIBROMOTOR3_SUSTAIN_N_OFFS 0x0F
90 #define VIBROMOTOR3_BRAKE_OFF 0x10
91 #define VIBROMOTOR3_A_TO_V_CTRL 0x11
92 #define VIBROMOTOR3_A_TO_V_MIN_INPUT 0x12
93 #define VIBROMOTOR3_A_TO_V_MAX_INPUT 0x13
94 #define VIBROMOTOR3_A_TO_V_MIN_OUT 0x14
95 #define VIBROMOTOR3_A_TO_V_MAX_OUT 0x15
96 #define VIBROMOTOR3_RATED_VOLT 0x16
97 #define VIBROMOTOR3_OD_CLAMP_VOLT 0x17
98 #define VIBROMOTOR3_CAL_COMP 0x18
99 #define VIBROMOTOR3_CAL_BACK_EMF 0x19
100 #define VIBROMOTOR3_FEEDBACK_CTRL 0x1A
101 #define VIBROMOTOR3_CTRL1 0x1B
102 #define VIBROMOTOR3_CTRL2 0x1C
103 #define VIBROMOTOR3_CTRL3 0x1D
104 #define VIBROMOTOR3_CTRL4 0x1E
105 #define VIBROMOTOR3_CTRL5 0x1F
106 #define VIBROMOTOR3_LRA_LOOP_PERIOD 0x20
107 #define VIBROMOTOR3_VBAT_MON 0x21
108 #define VIBROMOTOR3_LRA_RES_PERIOD 0x22
109  // vibromotor3_reg
111 
126 #define VIBROMOTOR3_STARTPPBOOST 0x80
127 #define VIBROMOTOR3_BYPASSCOMP 0x40
128 #define VIBROMOTOR3_AC_COUPLE 0x20
129 #define VIBROMOTOR3_DC_COUPLE 0x00
130 #define VIBROMOTOR3_DRV_TIME_0P5M 0x00
131 #define VIBROMOTOR3_DRV_TIME_0P6M 0x01
132 #define VIBROMOTOR3_DRV_TIME_0P7M 0x02
133 #define VIBROMOTOR3_DRV_TIME_0P8M 0x03
134 #define VIBROMOTOR3_DRV_TIME_0P9M 0x04
135 #define VIBROMOTOR3_DRV_TIME_1P0M 0x05
136 #define VIBROMOTOR3_DRV_TIME_1P1M 0x06
137 #define VIBROMOTOR3_DRV_TIME_1P2M 0x07
138 #define VIBROMOTOR3_DRV_TIME_1P3M 0x08
139 #define VIBROMOTOR3_DRV_TIME_1P4M 0x09
140 #define VIBROMOTOR3_DRV_TIME_1P5M 0x0A
141 #define VIBROMOTOR3_DRV_TIME_1P6M 0x0B
142 #define VIBROMOTOR3_DRV_TIME_1P7M 0x0C
143 #define VIBROMOTOR3_DRV_TIME_1P8M 0x0D
144 #define VIBROMOTOR3_DRV_TIME_1P9M 0x0E
145 #define VIBROMOTOR3_DRV_TIME_2P0M 0x0F
146 #define VIBROMOTOR3_DRV_TIME_2P1M 0x10
147 #define VIBROMOTOR3_DRV_TIME_2P2M 0x11
148 #define VIBROMOTOR3_DRV_TIME_2P3M 0x12
149 #define VIBROMOTOR3_DRV_TIME_2P4M 0x13
150 #define VIBROMOTOR3_DRV_TIME_2P5M 0x14
151 #define VIBROMOTOR3_DRV_TIME_2P6M 0x15
152 #define VIBROMOTOR3_DRV_TIME_2P7M 0x16
153 #define VIBROMOTOR3_DRV_TIME_2P8M 0x17
154 #define VIBROMOTOR3_DRV_TIME_2P9M 0x18
155 #define VIBROMOTOR3_DRV_TIME_3P0M 0x19
156 #define VIBROMOTOR3_DRV_TIME_3P1M 0x1A
157 #define VIBROMOTOR3_DRV_TIME_3P2M 0x1B
158 #define VIBROMOTOR3_DRV_TIME_3P3M 0x1C
159 #define VIBROMOTOR3_DRV_TIME_3P4M 0x1D
160 #define VIBROMOTOR3_DRV_TIME_3P5M 0x1E
161 #define VIBROMOTOR3_DRV_TIME_3P6M 0x1F
162 #define VIBROMOTOR3_BIDIR_IN 0x80
163 #define VIBROMOTOR3_UNIDIR_IN 0x00
164 #define VIBROMOTOR3_BRK_STABIL 0x40
165 #define VIBROMOTOR3_SAMP_TIME_150US 0x00
166 #define VIBROMOTOR3_SAMP_TIME_200US 0x10
167 #define VIBROMOTOR3_SAMP_TIME_250US 0x20
168 #define VIBROMOTOR3_SAMP_TIME_300US 0x30
169 #define VIBROMOTOR3_BLANK_TIME_V_SHORT 0x00
170 #define VIBROMOTOR3_BLANK_TIME_SHORT 0x04
171 #define VIBROMOTOR3_BLANK_TIME_MEDIUM 0x08
172 #define VIBROMOTOR3_BLANK_TIME_LONG 0x0C
173 #define VIBROMOTOR3_I_DIS_TIME_V_SHORT 0x00
174 #define VIBROMOTOR3_I_DIS_TIME_SHORT 0x01
175 #define VIBROMOTOR3_I_DIS_TIME_MEDIUM 0x02
176 #define VIBROMOTOR3_I_DIS_TIME_LONG 0x03
177 #define VIBROMOTOR3_NG_THRESH_OFF 0x00
178 #define VIBROMOTOR3_NG_THRESH_2_PERC 0x40
179 #define VIBROMOTOR3_NG_THRESH_4_PERC 0x80
180 #define VIBROMOTOR3_NG_THRESH_8_PERC 0xC0
181 #define VIBROMOTOR3_ERM_CLOSED_LOOP 0x00
182 #define VIBROMOTOR3_ERM_OPEN_LOOP 0x20
183 #define VIBROMOTOR3_SUP_COMP_DIS 0x10
184 #define VIBROMOTOR3_DATA_FORM_RTP_SIG 0x00
185 #define VIBROMOTOR3_DATA_FORM_RTP_UNS 0x08
186 #define VIBROMOTOR3_LRADRV_MODE 0x04
187 #define VIBROMOTOR3_LRADRV_MODE_ONCE 0x00
188 #define VIBROMOTOR3_LRADRV_MODE_TWICE 0x04
189 #define VIBROMOTOR3_IN_MODE_PWM 0x00
190 #define VIBROMOTOR3_IN_MODE_ANALOG 0x02
191 #define VIBROMOTOR3_LRA_AUTO_RESONA 0x00
192 #define VIBROMOTOR3_LRA_OPEN_LOOP 0x01
193 #define VIBROMOTOR3_LRA_CLOSED_LOOP 0x00
194 
199 #define VIBROMOTOR3_DEV_RESRT 0x80
200 #define VIBROMOTOR3_STANDBY 0x40
201 #define VIBROMOTOR3_ACTIVE 0x00
202 #define VIBROMOTOR3_INT_TRIG 0x00
203 #define VIBROMOTOR3_EXT_TRIG_EDGE 0x01
204 #define VIBROMOTOR3_EXT_TRIG_LEVEL 0x02
205 #define VIBROMOTOR3_PWM_ANALOG 0x03
206 #define VIBROMOTOR3_AUDIO2HAPTIC 0x04
207 #define VIBROMOTOR3_RTP 0x05
208 #define VIBROMOTOR3_DIAGNOSTICS 0x06
209 #define VIBROMOTOR3_AUTO_CALIBRATION 0x07
210 
215 #define VIBROMOTOR3_HIZ 0x10
216 #define VIBROMOTOR3_RAM 0x00
217 #define VIBROMOTOR3_ROM_A 0x01
218 #define VIBROMOTOR3_ROM_B 0x02
219 #define VIBROMOTOR3_ROM_C 0x03
220 #define VIBROMOTOR3_ROM_D 0x04
221 #define VIBROMOTOR3_ROM_E 0x05
222 #define VIBROMOTOR3_ROM_LRA 0x06
223 
228 #define VIBROMOTOR3_GO 0x01
229 #define VIBROMOTOR3_STOP 0x00
230 
235 #define VIBROMOTOR3_ERM_MODE 0x00
236 #define VIBROMOTOR3_LRA_MODE 0x80
237 #define VIBROMOTOR3_FB_BRAKE_FAC_1X 0x00
238 #define VIBROMOTOR3_FB_BRAKE_FAC_2X 0x10
239 #define VIBROMOTOR3_FB_BRAKE_FAC_3X 0x20
240 #define VIBROMOTOR3_FB_BRAKE_FAC_4X 0x30
241 #define VIBROMOTOR3_FB_BRAKE_FAC_6X 0x40
242 #define VIBROMOTOR3_FB_BRAKE_FAC_8X 0x50
243 #define VIBROMOTOR3_FB_BRAKE_FAC_16X 0x60
244 #define VIBROMOTOR3_FB_BRAKE_FAC_DIS 0x70
245 #define VIBROMOTOR3_LOOP_RESP_SLOW 0x00
246 #define VIBROMOTOR3_LOOP_RESP_MEDIUM 0x04
247 #define VIBROMOTOR3_LOOP_RESP_FAST 0x08
248 #define VIBROMOTOR3_LOOP_RESP_V_FAST 0x0C
249 #define VIBROMOTOR3_BEMF_GAIN_ERM_0P3X 0x00
250 #define VIBROMOTOR3_BEMF_GAIN_ERM_1X 0x01
251 #define VIBROMOTOR3_BEMF_GAIN_ERM_1P8X 0x02
252 #define VIBROMOTOR3_BEMF_GAIN_ERM_4X 0x03
253 #define VIBROMOTOR3_BEMF_GAIN_LRA_5X 0x00
254 #define VIBROMOTOR3_BEMF_GAIN_LRA_10X 0x01
255 #define VIBROMOTOR3_BEMF_GAIN_LRA_20X 0x02
256 #define VIBROMOTOR3_BEMF_GAIN_LRA_30X 0x03
257 
262 #define VIBROMOTOR3_AUTO_CAL_TIME_150MS 0x00
263 #define VIBROMOTOR3_AUTO_CAL_TIME_250MS 0x10
264 #define VIBROMOTOR3_AUTO_CAL_TIME_500MS 0x20
265 #define VIBROMOTOR3_AUTO_CAL_TIME_1000MS 0x30
266 #define VIBROMOTOR3_OTP_PROG 0x01
267 
272 #define VIBROMOTOR3_PROPERTY_DISABLE 0
273 #define VIBROMOTOR3_PROPERTY_ENABLE 1
274 
280 #define VIBROMOTOR3_SET_DEV_ADDR 0x5A
281 
286 #define VIBROMOTOR3_DEF_FREQ 235
287  // vibromotor3_set
289 
304 #define VIBROMOTOR3_MAP_MIKROBUS( cfg, mikrobus ) \
305  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
306  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
307  cfg.en = MIKROBUS( mikrobus, MIKROBUS_CS ); \
308  cfg.pwm = MIKROBUS( mikrobus, MIKROBUS_PWM )
309  // vibromotor3_map // vibromotor3
312 
317 typedef struct
318 {
319  // Output pins
320  digital_out_t en;
322  // Modules
323  i2c_master_t i2c;
324  pwm_t pwm;
326  // I2C slave address
327  uint8_t slave_address;
329  uint32_t pwm_freq;
331 } vibromotor3_t;
332 
337 typedef struct
338 {
339  pin_name_t scl;
340  pin_name_t sda;
342  pin_name_t en;
343  pin_name_t pwm;
345  uint32_t i2c_speed;
346  uint8_t i2c_address;
348  uint32_t dev_pwm_freq;
351 
356 typedef enum
357 {
359  VIBROMOTOR3_ERROR = -1
360 
362 
380 
395 
410 
425 err_t vibromotor3_generic_write ( vibromotor3_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len );
426 
441 err_t vibromotor3_generic_read ( vibromotor3_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len );
442 
454 err_t vibromotor3_set_duty_cycle ( vibromotor3_t *ctx, float duty_cycle );
455 
467 
479 
491 void vibromotor3_enable ( vibromotor3_t *ctx, uint8_t state );
492 
503 void vibromotor3_write_byte ( vibromotor3_t *ctx, uint8_t reg, uint8_t wr_data );
504 
515 uint8_t vibromotor3_read_byte ( vibromotor3_t *ctx, uint8_t reg );
516 
553 void vibromotor3_set_mode ( vibromotor3_t *ctx, uint8_t mode_sel );
554 
563 
573 void vibromotor3_stb_mode ( vibromotor3_t *ctx, uint8_t state );
574 
587 
596 void vibromotor3_set_rtp_input ( vibromotor3_t *ctx, uint8_t data_in );
597 
608 void vibromotor3_set_state_hi_z ( vibromotor3_t *ctx, uint8_t state );
609 
627 void vibromotor3_set_library ( vibromotor3_t *ctx, uint8_t lib_sel );
628 
640 void vibromotor3_start_motor ( vibromotor3_t *ctx, uint8_t state );
641 
650 void vibromotor3_set_ovdr_offset ( vibromotor3_t *ctx, uint8_t data_in );
651 
660 void vibromotor3_set_sustain_offset_pos ( vibromotor3_t *ctx, uint8_t data_in );
661 
670 void vibromotor3_set_sustain_offset_neg ( vibromotor3_t *ctx, uint8_t data_in );
671 
680 void vibromotor3_set_brake_time_offset ( vibromotor3_t *ctx, uint8_t data_in );
681 
691 void vibromotor3_set_rated_volt ( vibromotor3_t *ctx, uint8_t data_in );
692 
700 void vibromotor3_set_ovdrv_clamp_volt ( vibromotor3_t *ctx, uint8_t data_in );
701 
711 
721 
730 
742 void vibromotor3_set_lra_mode ( vibromotor3_t *ctx, uint8_t state );
743 
763 void vibromotor3_set_brake_factor ( vibromotor3_t *ctx, uint8_t brk_fac );
764 
779 void vibromotor3_set_loop_gain ( vibromotor3_t *ctx, uint8_t gain );
780 
793 void vibromotor3_set_input ( vibromotor3_t *ctx, uint8_t data_in );
794 
803 
804 #ifdef __cplusplus
805 }
806 #endif
807 #endif // VIBROMOTOR3_H
808  // vibromotor3
810 
811 // ------------------------------------------------------------------------ END
vibromotor3_write_byte
void vibromotor3_write_byte(vibromotor3_t *ctx, uint8_t reg, uint8_t wr_data)
Generic write the byte of data function.
vibromotor3_get_calib_res_comp
uint8_t vibromotor3_get_calib_res_comp(vibromotor3_t *ctx)
Reads the voltage-compensation function.
vibromotor3_soft_rst
void vibromotor3_soft_rst(vibromotor3_t *ctx)
Reset function.
vibromotor3_cfg_t
Vibro Motor 3 Click configuration object.
Definition: vibromotor3.h:338
vibromotor3_pwm_stop
err_t vibromotor3_pwm_stop(vibromotor3_t *ctx)
Vibro Motor 3 stop PWM module.
vibromotor3_set_ovdr_offset
void vibromotor3_set_ovdr_offset(vibromotor3_t *ctx, uint8_t data_in)
Sets overdrive offset function.
vibromotor3_set_sustain_offset_pos
void vibromotor3_set_sustain_offset_pos(vibromotor3_t *ctx, uint8_t data_in)
Sets sustain offset - positive function.
vibromotor3_generic_write
err_t vibromotor3_generic_write(vibromotor3_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
Vibro Motor 3 I2C writing function.
vibromotor3_init
err_t vibromotor3_init(vibromotor3_t *ctx, vibromotor3_cfg_t *cfg)
Vibro Motor 3 initialization function.
vibromotor3_enable
void vibromotor3_enable(vibromotor3_t *ctx, uint8_t state)
Enable the device function.
vibromotor3_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: vibromotor3.h:345
vibromotor3_set_rated_volt
void vibromotor3_set_rated_volt(vibromotor3_t *ctx, uint8_t data_in)
Sets the reference voltage function.
vibromotor3_set_brake_time_offset
void vibromotor3_set_brake_time_offset(vibromotor3_t *ctx, uint8_t data_in)
Sets brake time offset function.
vibromotor3_set_library
void vibromotor3_set_library(vibromotor3_t *ctx, uint8_t lib_sel)
Set the desired vibrating patterns library.
vibromotor3_t::pwm_freq
uint32_t pwm_freq
Definition: vibromotor3.h:329
VIBROMOTOR3_OK
@ VIBROMOTOR3_OK
Definition: vibromotor3.h:358
vibromotor3_set_sustain_offset_neg
void vibromotor3_set_sustain_offset_neg(vibromotor3_t *ctx, uint8_t data_in)
Sets sustain offset - negative function.
vibromotor3_set_input
void vibromotor3_set_input(vibromotor3_t *ctx, uint8_t data_in)
Sets the input to PWM or analog function.
vibromotor3_get_stat
uint8_t vibromotor3_get_stat(vibromotor3_t *ctx)
Get status register value function.
vibromotor3_cfg_t::en
pin_name_t en
Definition: vibromotor3.h:342
vibromotor3_t::en
digital_out_t en
Definition: vibromotor3.h:320
vibromotor3_read_byte
uint8_t vibromotor3_read_byte(vibromotor3_t *ctx, uint8_t reg)
Generic read the byte of data function.
vibromotor3_pwm_start
err_t vibromotor3_pwm_start(vibromotor3_t *ctx)
Vibro Motor 3 start PWM module.
vibromotor3_t::pwm
pwm_t pwm
Definition: vibromotor3.h:324
vibromotor3_set_loop_gain
void vibromotor3_set_loop_gain(vibromotor3_t *ctx, uint8_t gain)
Selects a loop gain function.
vibromotor3_set_lra_mode
void vibromotor3_set_lra_mode(vibromotor3_t *ctx, uint8_t state)
Sets the device in LRA mode function.
vibromotor3_t::slave_address
uint8_t slave_address
Definition: vibromotor3.h:327
vibromotor3_set_duty_cycle
err_t vibromotor3_set_duty_cycle(vibromotor3_t *ctx, float duty_cycle)
Vibro Motor 3 sets PWM duty cycle.
vibromotor3_stb_mode
void vibromotor3_stb_mode(vibromotor3_t *ctx, uint8_t state)
Software standby mode.
vibromotor3_t
Vibro Motor 3 Click context object.
Definition: vibromotor3.h:318
vibromotor3_cfg_setup
void vibromotor3_cfg_setup(vibromotor3_cfg_t *cfg)
Vibro Motor 3 configuration object setup function.
vibromotor3_cfg_t::i2c_address
uint8_t i2c_address
Definition: vibromotor3.h:346
VIBROMOTOR3_ERROR
@ VIBROMOTOR3_ERROR
Definition: vibromotor3.h:359
vibromotor3_get_supply_volt_val
float vibromotor3_get_supply_volt_val(vibromotor3_t *ctx)
Reading of the supply voltage function.
vibromotor3_set_ovdrv_clamp_volt
void vibromotor3_set_ovdrv_clamp_volt(vibromotor3_t *ctx, uint8_t data_in)
Sets a clamp function.
vibromotor3_generic_read
err_t vibromotor3_generic_read(vibromotor3_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
Vibro Motor 3 I2C reading function.
vibromotor3_cfg_t::sda
pin_name_t sda
Definition: vibromotor3.h:340
vibromotor3_get_lra_resonance_period
float vibromotor3_get_lra_resonance_period(vibromotor3_t *ctx)
Reads the measurement of the LRA resonance period function.
vibromotor3_set_brake_factor
void vibromotor3_set_brake_factor(vibromotor3_t *ctx, uint8_t brk_fac)
Set brake factor function.
vibromotor3_set_state_hi_z
void vibromotor3_set_state_hi_z(vibromotor3_t *ctx, uint8_t state)
Set the devices in HI-Z state function.
vibromotor3_start_motor
void vibromotor3_start_motor(vibromotor3_t *ctx, uint8_t state)
Starts or stops moving the motor function.
vibromotor3_enable_ac_coulping
void vibromotor3_enable_ac_coulping(vibromotor3_t *ctx)
Applies a 0.9-V common mode voltage function.
vibromotor3_set_rtp_input
void vibromotor3_set_rtp_input(vibromotor3_t *ctx, uint8_t data_in)
Sets the desired input for RTP mode function.
vibromotor3_set_mode
void vibromotor3_set_mode(vibromotor3_t *ctx, uint8_t mode_sel)
Sets the desired mode function.
vibromotor3_return_value_t
vibromotor3_return_value_t
Vibro Motor 3 Click return value data.
Definition: vibromotor3.h:357
vibromotor3_cfg_t::pwm
pin_name_t pwm
Definition: vibromotor3.h:343
vibromotor3_cfg_t::scl
pin_name_t scl
Definition: vibromotor3.h:339
vibromotor3_default_cfg
err_t vibromotor3_default_cfg(vibromotor3_t *ctx)
Vibro Motor 3 default configuration function.
vibromotor3_t::i2c
i2c_master_t i2c
Definition: vibromotor3.h:323
vibromotor3_cfg_t::dev_pwm_freq
uint32_t dev_pwm_freq
Definition: vibromotor3.h:348