shake2wake  2.0.0.0
shake2wake.h
Go to the documentation of this file.
1 /*
2  * MikroSDK - MikroE Software Development Kit
3  * Copyright© 2020 MikroElektronika d.o.o.
4  *
5  * Permission is hereby granted, free of charge, to any person
6  * obtaining a copy of this software and associated documentation
7  * files (the "Software"), to deal in the Software without restriction,
8  * including without limitation the rights to use, copy, modify, merge,
9  * publish, distribute, sublicense, and/or sell copies of the Software,
10  * and to permit persons to whom the Software is furnished to do so,
11  * subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be
14  * included in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
22  * OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24 
33 // ----------------------------------------------------------------------------
34 
35 #ifndef SHAKE2WAKE_H
36 #define SHAKE2WAKE_H
37 
38 #include "drv_digital_out.h"
39 #include "drv_digital_in.h"
40 #include "drv_spi_master.h"
41 
42 
43 // -------------------------------------------------------------- PUBLIC MACROS
54 #define SHAKE2WAKE_MAP_MIKROBUS( cfg, mikrobus ) \
55  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
56  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
57  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
58  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
59  cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT );
60 
66 #define SHAKE2WAKE_RETVAL uint8_t
67 
68 #define SHAKE2WAKE_OK 0x00
69 #define SHAKE2WAKE_INIT_ERROR 0xFF
70 
76 #define SHAKE2WAKE_WRITE_REG 0x0A
77 #define SHAKE2WAKE_READ_REG 0x0B
78 #define SHAKE2WAKE_READ_FIFO 0x0D
79 
85 #define SHAKE2WAKE_REG_DEVID_AD 0x00
86 #define SHAKE2WAKE_REG_DEVID_MST 0x01
87 #define SHAKE2WAKE_REG_PARTID 0x02
88 #define SHAKE2WAKE_REG_REVID 0x03
89 #define SHAKE2WAKE_REG_XDATA 0x08
90 #define SHAKE2WAKE_REG_YDATA 0x09
91 #define SHAKE2WAKE_REG_ZDATA 0x0A
92 #define SHAKE2WAKE_REG_STATUS 0x0B
93 #define SHAKE2WAKE_REG_FIFO_L 0x0C
94 #define SHAKE2WAKE_REG_FIFO_H 0x0D
95 #define SHAKE2WAKE_REG_XDATA_L 0x0E
96 #define SHAKE2WAKE_REG_XDATA_H 0x0F
97 #define SHAKE2WAKE_REG_YDATA_L 0x10
98 #define SHAKE2WAKE_REG_YDATA_H 0x11
99 #define SHAKE2WAKE_REG_ZDATA_L 0x12
100 #define SHAKE2WAKE_REG_ZDATA_H 0x13
101 #define SHAKE2WAKE_REG_TEMP_L 0x14
102 #define SHAKE2WAKE_REG_TEMP_H 0x15
103 #define SHAKE2WAKE_REG_SOFT_RESET 0x1F
104 #define SHAKE2WAKE_REG_THRESH_ACT_L 0x20
105 #define SHAKE2WAKE_REG_THRESH_ACT_H 0x21
106 #define SHAKE2WAKE_REG_TIME_ACT 0x22
107 #define SHAKE2WAKE_REG_THRESH_INACT_L 0x23
108 #define SHAKE2WAKE_REG_THRESH_INACT_H 0x24
109 #define SHAKE2WAKE_REG_TIME_INACT_L 0x25
110 #define SHAKE2WAKE_REG_TIME_INACT_H 0x26
111 #define SHAKE2WAKE_REG_ACT_INACT_CTL 0x27
112 #define SHAKE2WAKE_REG_FIFO_CTL 0x28
113 #define SHAKE2WAKE_REG_FIFO_SAMPLES 0x29
114 #define SHAKE2WAKE_REG_INTMAP1 0x2A
115 #define SHAKE2WAKE_REG_INTMAP2 0x2B
116 #define SHAKE2WAKE_REG_FILTER_CTL 0x2C
117 #define SHAKE2WAKE_REG_POWER_CTL 0x2D
118 #define SHAKE2WAKE_REG_SELF_TEST 0x2E
119 
125 #define SHAKE2WAKE_STATUS_ERR_USER_REGS ( 1 << 7 )
126 #define SHAKE2WAKE_STATUS_AWAKE ( 1 << 6 )
127 #define SHAKE2WAKE_STATUS_INACT ( 1 << 5 )
128 #define SHAKE2WAKE_STATUS_ACT ( 1 << 4 )
129 #define SHAKE2WAKE_STATUS_FIFO_OVERRUN ( 1 << 3 )
130 #define SHAKE2WAKE_STATUS_FIFO_WATERMARK ( 1 << 2 )
131 #define SHAKE2WAKE_STATUS_FIFO_RDY ( 1 << 1 )
132 #define SHAKE2WAKE_STATUS_DATA_RDY 1
133 
139 #define SHAKE2WAKE_CTL_LINKLOOP_MODE_DEFAULT ( ( 0 & 0x03 ) << 4 )
140 #define SHAKE2WAKE_CTL_LINKLOOP_MODE_LINK ( ( 1 & 0x03 ) << 4 )
141 #define SHAKE2WAKE_CTL_LINKLOOP_MODE_LOOP ( ( 3 & 0x03 ) << 4 )
142 #define SHAKE2WAKE_ACT_INACT_CTL_INACT_REF ( 1 << 3 )
143 #define SHAKE2WAKE_ACT_INACT_CTL_INACT_EN ( 1 << 2 )
144 #define SHAKE2WAKE_ACT_INACT_CTL_ACT_REF ( 1 << 1 )
145 #define SHAKE2WAKE_ACT_INACT_CTL_ACT_EN 1
146 
152 #define SHAKE2WAKE_FIFO_CTL_AH ( 1 << 3 )
153 #define SHAKE2WAKE_FIFO_CTL_FIFO_TEMP ( 1 << 2 )
154 #define SHAKE2WAKE_FIFO_CTL_FIFO_MODE_DIS ( 0 & 0x03 )
155 #define SHAKE2WAKE_FIFO_CTL_FIFO_MODE_OSM ( 1 & 0x03 )
156 #define SHAKE2WAKE_FIFO_CTL_FIFO_MODE_STREAM ( 2 & 0x03 )
157 #define SHAKE2WAKE_FIFO_CTL_FIFO_MODE_TRIG ( 3 & 0x03 )
158 
164 #define SHAKE2WAKE_INTMAP1_INT_LOW ( 1 << 7 )
165 #define SHAKE2WAKE_INTMAP1_AWAKE ( 1 << 6 )
166 #define SHAKE2WAKE_INTMAP1_INACT ( 1 << 5 )
167 #define SHAKE2WAKE_INTMAP1_ACT ( 1 << 4 )
168 #define SHAKE2WAKE_INTMAP1_FIFO_OVERRUN ( 1 << 3 )
169 #define SHAKE2WAKE_INTMAP1_FIFO_WATERMARK ( 1 << 2 )
170 #define SHAKE2WAKE_INTMAP1_FIFO_READY ( 1 << 1 )
171 #define SHAKE2WAKE_INTMAP1_DATA_READY 1
172 
178 #define SHAKE2WAKE_INTMAP2_INT_LOW ( 1 << 7 )
179 #define SHAKE2WAKE_INTMAP2_AWAKE ( 1 << 6 )
180 #define SHAKE2WAKE_INTMAP2_INACT ( 1 << 5 )
181 #define SHAKE2WAKE_INTMAP2_ACT ( 1 << 4 )
182 #define SHAKE2WAKE_INTMAP2_FIFO_OVERRUN ( 1 << 3 )
183 #define SHAKE2WAKE_INTMAP2_FIFO_WATERMARK ( 1 << 2 )
184 #define SHAKE2WAKE_INTMAP2_FIFO_READY ( 1 << 1 )
185 #define SHAKE2WAKE_INTMAP2_DATA_READY 1
186 
192 #define SHAKE2WAKE_FILTER_CTL_RANGE_2_G ( ( 0 & 0x3 ) << 6 )
193 #define SHAKE2WAKE_FILTER_CTL_RANGE_4_G ( ( 1 & 0x3 ) << 6 )
194 #define SHAKE2WAKE_FILTER_CTL_RANGE_8_G ( ( 2 & 0x3 ) << 6 )
195 #define SHAKE2WAKE_FILTER_CTL_RES ( 1 << 5 )
196 #define SHAKE2WAKE_FILTER_CTL_HALF_BW ( 1 << 4 )
197 #define SHAKE2WAKE_FILTER_CTL_EXT_SAMPLE ( 1 << 3 )
198 #define SHAKE2WAKE_FILTER_CTL_ODR_12_5 ( 0 & 0x07 )
199 #define SHAKE2WAKE_FILTER_CTL_ODR_25 ( 1 & 0x07 )
200 #define SHAKE2WAKE_FILTER_CTL_ODR_50 ( 2 & 0x07 )
201 #define SHAKE2WAKE_FILTER_CTL_ODR_100 ( 3 & 0x07 )
202 #define SHAKE2WAKE_FILTER_CTL_ODR_200 ( 4 & 0x07 )
203 #define SHAKE2WAKE_FILTER_CTL_ODR_400 ( 7 & 0x07 )
204 
210 #define SHAKE2WAKE_POWER_CTL_RES ( 1 << 7 )
211 #define SHAKE2WAKE_POWER_CTL_EXT_CLK ( 1 << 6 )
212 #define SHAKE2WAKE_POWER_CTL_LOW_NOISE_MODE_NORMAL ( ( 0 & 0x03 ) << 4 )
213 #define SHAKE2WAKE_POWER_CTL_LOW_NOISE_MODE_LOW ( ( 1 & 0x03 ) << 4 )
214 #define SHAKE2WAKE_POWER_CTL_LOW_NOISE_MODE_ULTRALOW ( ( 2 & 0x03 ) << 4 )
215 #define SHAKE2WAKE_POWER_CTL_WAKEUP ( 1 << 3 )
216 #define SHAKE2WAKE_POWER_CTL_AUTOSLEEP ( 1 << 2 )
217 #define SHAKE2WAKE_POWER_CTL_MEASURE_STD_BY ( 0x00 )
218 #define SHAKE2WAKE_POWER_CTL_MEASURE_MODE ( 0x02 )
219 
225 #define SHAKE2WAKE_SELF_TEST_ST 1
226 
232 #define SHAKE2WAKE_DEVICE_AD 0xAD
233 #define SHAKE2WAKE_DEVICE_MST 0x1D
234 #define SHAKE2WAKE_PART_ID 0xF2
235 
241 #define SHAKE2WAKE_RESET_KEY 0x52
242  // End group macro
245 // --------------------------------------------------------------- PUBLIC TYPES
254 typedef struct
255 {
256  digital_out_t cs;
257 
258  // Input pins
259 
260  digital_in_t int_pin;
261 
262  // Modules
263 
264  spi_master_t spi;
265  pin_name_t chip_select;
266 
267 } shake2wake_t;
268 
272 typedef struct
273 {
274  // Communication gpio pins
275 
276  pin_name_t miso;
277  pin_name_t mosi;
278  pin_name_t sck;
279  pin_name_t cs;
280 
281  // Additional gpio pins
282 
283  pin_name_t int_pin;
284 
285  // static variable
286 
287  uint32_t spi_speed;
288  spi_master_mode_t spi_mode;
289  spi_master_chip_select_polarity_t cs_polarity;
290 
292  // End types group
294 // ----------------------------------------------- PUBLIC FUNCTION DECLARATIONS
295 
300 #ifdef __cplusplus
301 extern "C"{
302 #endif
303 
313 
322 
331 
344 (
345  shake2wake_t *ctx,
346  uint8_t *wr_buf,
347  uint16_t wr_len,
348  uint8_t *rd_buf,
349  uint16_t rd_len
350 );
351 
360 uint8_t shake2wake_read_byte ( shake2wake_t *ctx, uint8_t rd_addr );
361 
371 void shake2wake_write_byte ( shake2wake_t *ctx, uint8_t wr_addr, uint8_t wr_val );
372 
383 void shake2wake_write_two_byte ( shake2wake_t *ctx, uint8_t reg_addr, uint16_t reg_val, uint8_t cnt );
384 
395 void shake2wake_read_multiple_byte ( shake2wake_t *ctx, uint8_t reg_addr, uint8_t *prd_data, uint8_t cnt );
396 
406 void shake2wake_fifo_read ( shake2wake_t *ctx, uint8_t *p_buff, uint16_t cnt );
407 
415 uint8_t shake2wake_read_dev_id_ad ( shake2wake_t *ctx );
416 
425 
433 uint8_t shake2wake_read_part_id ( shake2wake_t *ctx );
434 
442 uint8_t shake2wake_read_revision ( shake2wake_t *ctx );
443 
451 void shake2wake_soft_reset ( shake2wake_t *ctx );
452 
460 uint8_t shake2wake_read_status ( shake2wake_t *ctx );
461 
469 uint16_t shake2wake_read_fifo_ent ( shake2wake_t *ctx );
470 
481 void shake2wake_get_lo_res_raw_data ( shake2wake_t *ctx, int8_t *x_val, int8_t *y_val, int8_t *z_val );
482 
493 void shake2wake_get_raw_data ( shake2wake_t *ctx, int16_t *x_val, int16_t *y_val, int16_t *z_val );
494 
503 
512 
521 
530 
538 void shake2wake_wake_up ( shake2wake_t *ctx );
539 
548 void shake2wake_set_low_noise_mode ( shake2wake_t *ctx, uint8_t low_noise );
549 
557 void shake2wake_extern_clk ( shake2wake_t *ctx );
558 
567 void shake2wake_set_range ( shake2wake_t *ctx, uint8_t range );
568 
577 
586 
595 void shake2wake_set_output_data_rate ( shake2wake_t *ctx, uint8_t odr );
596 
607 void shake2wake_get_data_g ( shake2wake_t *ctx, float *x_val, float *y_val, float *z_val );
608 
617 
625 void shake2wake_store_temp ( shake2wake_t *ctx );
626 
635 void shake2wake_set_fifo_mode ( shake2wake_t *ctx, uint8_t mode );
636 
645 
653 uint8_t shake2wake_read_power_ctl ( shake2wake_t *ctx );
654 
662 uint8_t shake2wake_read_fifo_ctl ( shake2wake_t *ctx );
663 
672 
681 
690 
699 
708 
717 void shake2wake_sel_link_loop_mode ( shake2wake_t *ctx, uint8_t mode );
718 
727 void shake2wake_set_act_trsh ( shake2wake_t *ctx, uint16_t act_trsh );
728 
736 int16_t shake2wake_read_act_trsh ( shake2wake_t *ctx );
737 
746 void shake2wake_set_act_time ( shake2wake_t *ctx, uint8_t ac_time );
747 
755 uint8_t shake2wake_read_act_time ( shake2wake_t *ctx );
756 
765 void shake2wake_set_inact_trsh ( shake2wake_t *ctx, uint16_t inact_trsh );
766 
775 
784 void shake2wake_set_inact_time ( shake2wake_t *ctx, uint16_t inac_time );
785 
793 uint16_t shake2wake_read_inact_time ( shake2wake_t *ctx );
794 
803 void shake2wake_write_int_1_map ( shake2wake_t *ctx, uint8_t wr_data );
804 
812 uint8_t shake2wake_read_int_1_map ( shake2wake_t *ctx );
813 
822 void shake2wake_write_int_2_map ( shake2wake_t *ctx, uint8_t wr_data );
823 
831 uint8_t shake2wake_read_int_2_map ( shake2wake_t *ctx );
832 
841 void shake2wake_write_fifo_samp ( shake2wake_t *ctx, uint8_t samp );
842 
850 uint8_t shake2wake_read_fifo_samp ( shake2wake_t *ctx );
851 
859 uint8_t shake2wake_check_int ( shake2wake_t *ctx );
860 
861 #ifdef __cplusplus
862 }
863 #endif
864 #endif // _SHAKE2WAKE_H_
865  // End public_function group
868 
869 // ------------------------------------------------------------------------- END
shake2wake_read_inact_trsh
int16_t shake2wake_read_inact_trsh(shake2wake_t *ctx)
Read inactivity threshold function.
shake2wake_read_byte
uint8_t shake2wake_read_byte(shake2wake_t *ctx, uint8_t rd_addr)
Read one byte function.
shake2wake_read_act_trsh
int16_t shake2wake_read_act_trsh(shake2wake_t *ctx)
Read activity threshold function.
shake2wake_set_fifo_mode
void shake2wake_set_fifo_mode(shake2wake_t *ctx, uint8_t mode)
Enable FIFO and Mode Selection function.
shake2wake_stand_by_mode
void shake2wake_stand_by_mode(shake2wake_t *ctx)
Stand by function.
shake2wake_cfg_t::cs
pin_name_t cs
Definition: shake2wake.h:279
shake2wake_read_int_2_map
uint8_t shake2wake_read_int_2_map(shake2wake_t *ctx)
Read INT2 function map function.
shake2wake_set_referenced_activity
void shake2wake_set_referenced_activity(shake2wake_t *ctx)
Set Referenced Activity function.
shake2wake_sel_hal_bandw
void shake2wake_sel_hal_bandw(shake2wake_t *ctx)
Select halved bandwidth function.
shake2wake_set_range
void shake2wake_set_range(shake2wake_t *ctx, uint8_t range)
Select measurement range function.
shake2wake_cfg_t::sck
pin_name_t sck
Definition: shake2wake.h:278
shake2wake_read_temperature
float shake2wake_read_temperature(shake2wake_t *ctx)
Read temperature function.
shake2wake_write_fifo_samp
void shake2wake_write_fifo_samp(shake2wake_t *ctx, uint8_t samp)
Write FIFO samples function.
shake2wake_get_lo_res_raw_data
void shake2wake_get_lo_res_raw_data(shake2wake_t *ctx, int8_t *x_val, int8_t *y_val, int8_t *z_val)
Get low resolution raw accelerometer data function.
shake2wake_t::chip_select
pin_name_t chip_select
Definition: shake2wake.h:265
shake2wake_set_inactivity_enable
void shake2wake_set_inactivity_enable(shake2wake_t *ctx)
Set Inactivity Enable function.
shake2wake_read_int_1_map
uint8_t shake2wake_read_int_1_map(shake2wake_t *ctx)
Read INT1 function map function.
shake2wake_read_inact_time
uint16_t shake2wake_read_inact_time(shake2wake_t *ctx)
Read inactivity time function.
shake2wake_extern_clk
void shake2wake_extern_clk(shake2wake_t *ctx)
Enable external clock function.
shake2wake_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: shake2wake.h:288
shake2wake_get_raw_data
void shake2wake_get_raw_data(shake2wake_t *ctx, int16_t *x_val, int16_t *y_val, int16_t *z_val)
Get raw accelerometer data function.
shake2wake_read_dev_id_ad
uint8_t shake2wake_read_dev_id_ad(shake2wake_t *ctx)
Read DEVID_AD register function.
shake2wake_read_revision
uint8_t shake2wake_read_revision(shake2wake_t *ctx)
Read silicon revision register function.
shake2wake_write_int_1_map
void shake2wake_write_int_1_map(shake2wake_t *ctx, uint8_t wr_data)
Write INT1 function map function.
shake2wake_set_act_trsh
void shake2wake_set_act_trsh(shake2wake_t *ctx, uint16_t act_trsh)
Set activity threshold function.
shake2wake_read_dev_id_mst
uint8_t shake2wake_read_dev_id_mst(shake2wake_t *ctx)
Read DEVID_MST register function.
shake2wake_read_fifo_samp
uint8_t shake2wake_read_fifo_samp(shake2wake_t *ctx)
Read FIFO samples function.
shake2wake_read_multiple_byte
void shake2wake_read_multiple_byte(shake2wake_t *ctx, uint8_t reg_addr, uint8_t *prd_data, uint8_t cnt)
Read miltiple bytes function.
shake2wake_cfg_t::int_pin
pin_name_t int_pin
Definition: shake2wake.h:283
shake2wake_read_act_time
uint8_t shake2wake_read_act_time(shake2wake_t *ctx)
Read activity time function.
shake2wake_cfg_t::miso
pin_name_t miso
Definition: shake2wake.h:276
shake2wake_check_int
uint8_t shake2wake_check_int(shake2wake_t *ctx)
Get Interrupt state function.
shake2wake_fifo_read
void shake2wake_fifo_read(shake2wake_t *ctx, uint8_t *p_buff, uint16_t cnt)
FIFO read function.
shake2wake_cfg_setup
void shake2wake_cfg_setup(shake2wake_cfg_t *cfg)
Config Object Initialization function.
shake2wake_cfg_t::cs_polarity
spi_master_chip_select_polarity_t cs_polarity
Definition: shake2wake.h:289
shake2wake_set_referenced_inactivity
void shake2wake_set_referenced_inactivity(shake2wake_t *ctx)
Set Referenced Inactivity function.
shake2wake_read_fifo_ctl
uint8_t shake2wake_read_fifo_ctl(shake2wake_t *ctx)
Read FIFO control register function.
shake2wake_get_data_g
void shake2wake_get_data_g(shake2wake_t *ctx, float *x_val, float *y_val, float *z_val)
Get accelerometer data in "g" function.
shake2wake_default_cfg
void shake2wake_default_cfg(shake2wake_t *ctx)
Click Default Configuration function.
shake2wake_measure_mode
void shake2wake_measure_mode(shake2wake_t *ctx)
Measure mode function.
shake2wake_read_part_id
uint8_t shake2wake_read_part_id(shake2wake_t *ctx)
Read part ID register function.
shake2wake_t::int_pin
digital_in_t int_pin
Definition: shake2wake.h:260
shake2wake_write_byte
void shake2wake_write_byte(shake2wake_t *ctx, uint8_t wr_addr, uint8_t wr_val)
Write one byte function.
shake2wake_set_output_data_rate
void shake2wake_set_output_data_rate(shake2wake_t *ctx, uint8_t odr)
Select output data rate function.
shake2wake_set_activity_enable
void shake2wake_set_activity_enable(shake2wake_t *ctx)
Set Activity Enable function.
shake2wake_read_fifo_ent
uint16_t shake2wake_read_fifo_ent(shake2wake_t *ctx)
Read fifo entries registers function.
shake2wake_wake_up
void shake2wake_wake_up(shake2wake_t *ctx)
Wake up function.
shake2wake_cfg_t::spi_speed
uint32_t spi_speed
Definition: shake2wake.h:287
shake2wake_set_act_time
void shake2wake_set_act_time(shake2wake_t *ctx, uint8_t ac_time)
Set activity time function.
shake2wake_set_extern_samp_trigg
void shake2wake_set_extern_samp_trigg(shake2wake_t *ctx)
External sampling trigger function.
shake2wake_soft_reset
void shake2wake_soft_reset(shake2wake_t *ctx)
Software reset function.
shake2wake_auto_sleep_mode
void shake2wake_auto_sleep_mode(shake2wake_t *ctx)
Auto-sleep mode function.
shake2wake_read_status
uint8_t shake2wake_read_status(shake2wake_t *ctx)
Read status register function.
shake2wake_read_act_inact_ctl
uint8_t shake2wake_read_act_inact_ctl(shake2wake_t *ctx)
Read activity/inactivity control register function.
shake2wake_cfg_t
Click configuration structure definition.
Definition: shake2wake.h:272
shake2wake_write_two_byte
void shake2wake_write_two_byte(shake2wake_t *ctx, uint8_t reg_addr, uint16_t reg_val, uint8_t cnt)
Write two bytes function.
shake2wake_set_low_noise_mode
void shake2wake_set_low_noise_mode(shake2wake_t *ctx, uint8_t low_noise)
Set Low Noise Mode function.
shake2wake_cfg_t::mosi
pin_name_t mosi
Definition: shake2wake.h:277
shake2wake_store_temp
void shake2wake_store_temp(shake2wake_t *ctx)
Store Temperature Data to FIFO function.
shake2wake_init
SHAKE2WAKE_RETVAL shake2wake_init(shake2wake_t *ctx, shake2wake_cfg_t *cfg)
Initialization function.
SHAKE2WAKE_RETVAL
#define SHAKE2WAKE_RETVAL
Definition: shake2wake.h:66
shake2wake_read_power_ctl
uint8_t shake2wake_read_power_ctl(shake2wake_t *ctx)
Read power control register function.
shake2wake_t::spi
spi_master_t spi
Definition: shake2wake.h:264
shake2wake_write_int_2_map
void shake2wake_write_int_2_map(shake2wake_t *ctx, uint8_t wr_data)
Write INT2 function map function.
shake2wake_t
Click ctx object definition.
Definition: shake2wake.h:254
shake2wake_generic_transfer
void shake2wake_generic_transfer(shake2wake_t *ctx, uint8_t *wr_buf, uint16_t wr_len, uint8_t *rd_buf, uint16_t rd_len)
Generic transfer function.
shake2wake_set_inact_time
void shake2wake_set_inact_time(shake2wake_t *ctx, uint16_t inac_time)
Set inactivity time function.
shake2wake_sel_link_loop_mode
void shake2wake_sel_link_loop_mode(shake2wake_t *ctx, uint8_t mode)
Select LINK/LOOP mode function.
shake2wake_set_fifo_above_half
void shake2wake_set_fifo_above_half(shake2wake_t *ctx)
Set FIFO Above Half function.
shake2wake_set_inact_trsh
void shake2wake_set_inact_trsh(shake2wake_t *ctx, uint16_t inact_trsh)
Set inactivity threshold function.
shake2wake_t::cs
digital_out_t cs
Definition: shake2wake.h:256
shake2wake_read_filter_ctl
uint8_t shake2wake_read_filter_ctl(shake2wake_t *ctx)
Read filter control register function.