Da Vinci Firmware 1
Firmware for the DaVinci-M rocket avionics board.
Loading...
Searching...
No Matches
LSM6DSO32_finite_state_machine

This section groups all the functions that manage the state_machine. More...

Collaboration diagram for LSM6DSO32_finite_state_machine:

Data Structures

struct  lsm6dso32_emb_fsm_enable_t
 
struct  lsm6dso32_fsm_out_t
 

Enumerations

enum  lsm6dso32_fsm_lc_clr_t { LSM6DSO32_LC_NORMAL = 0 , LSM6DSO32_LC_CLEAR = 1 , LSM6DSO32_LC_CLEAR_DONE = 2 }
 
enum  lsm6dso32_fsm_odr_t { LSM6DSO32_ODR_FSM_12Hz5 = 0 , LSM6DSO32_ODR_FSM_26Hz = 1 , LSM6DSO32_ODR_FSM_52Hz = 2 , LSM6DSO32_ODR_FSM_104Hz = 3 }
 

Functions

int32_t lsm6dso32_long_cnt_flag_data_ready_get (stmdev_ctx_t *ctx, uint8_t *val)
 Interrupt status bit for FSM long counter timeout interrupt event.[get].
 
int32_t lsm6dso32_emb_fsm_en_set (stmdev_ctx_t *ctx, uint8_t val)
 Final State Machine global enable.[set].
 
int32_t lsm6dso32_emb_fsm_en_get (stmdev_ctx_t *ctx, uint8_t *val)
 Final State Machine global enable.[get].
 
int32_t lsm6dso32_fsm_enable_set (stmdev_ctx_t *ctx, lsm6dso32_emb_fsm_enable_t *val)
 Final State Machine enable.[set].
 
int32_t lsm6dso32_fsm_enable_get (stmdev_ctx_t *ctx, lsm6dso32_emb_fsm_enable_t *val)
 Final State Machine enable.[get].
 
int32_t lsm6dso32_long_cnt_set (stmdev_ctx_t *ctx, uint16_t val)
 FSM long counter status register. Long counter value is an unsigned integer value (16-bit format).[set].
 
int32_t lsm6dso32_long_cnt_get (stmdev_ctx_t *ctx, uint16_t *val)
 FSM long counter status register. Long counter value is an unsigned integer value (16-bit format).[get].
 
int32_t lsm6dso32_long_clr_set (stmdev_ctx_t *ctx, lsm6dso32_fsm_lc_clr_t val)
 Clear FSM long counter value.[set].
 
int32_t lsm6dso32_long_clr_get (stmdev_ctx_t *ctx, lsm6dso32_fsm_lc_clr_t *val)
 Clear FSM long counter value.[get].
 
int32_t lsm6dso32_fsm_out_get (stmdev_ctx_t *ctx, lsm6dso32_fsm_out_t *val)
 FSM output registers[get].
 
int32_t lsm6dso32_fsm_data_rate_set (stmdev_ctx_t *ctx, lsm6dso32_fsm_odr_t val)
 Finite State Machine ODR configuration.[set].
 
int32_t lsm6dso32_fsm_data_rate_get (stmdev_ctx_t *ctx, lsm6dso32_fsm_odr_t *val)
 Finite State Machine ODR configuration.[get].
 
int32_t lsm6dso32_fsm_init_set (stmdev_ctx_t *ctx, uint8_t val)
 FSM initialization request.[set].
 
int32_t lsm6dso32_fsm_init_get (stmdev_ctx_t *ctx, uint8_t *val)
 FSM initialization request.[get].
 
int32_t lsm6dso32_long_cnt_int_value_set (stmdev_ctx_t *ctx, uint16_t val)
 FSM long counter timeout register (r/w). The long counter timeout value is an unsigned integer value (16-bit format). When the long counter value reached this value, the FSM generates an interrupt.[set].
 
int32_t lsm6dso32_long_cnt_int_value_get (stmdev_ctx_t *ctx, uint16_t *val)
 FSM long counter timeout register (r/w). The long counter timeout value is an unsigned integer value (16-bit format). When the long counter value reached this value, the FSM generates an interrupt.[get].
 
int32_t lsm6dso32_fsm_number_of_programs_set (stmdev_ctx_t *ctx, uint8_t *buff)
 FSM number of programs register.[set].
 
int32_t lsm6dso32_fsm_number_of_programs_get (stmdev_ctx_t *ctx, uint8_t *buff)
 FSM number of programs register.[get].
 
int32_t lsm6dso32_fsm_start_address_set (stmdev_ctx_t *ctx, uint16_t val)
 FSM start address register (r/w). First available address is 0x033C.[set].
 
int32_t lsm6dso32_fsm_start_address_get (stmdev_ctx_t *ctx, uint16_t *val)
 FSM start address register (r/w). First available address is 0x033C.[get].
 

Detailed Description

This section groups all the functions that manage the state_machine.

Enumeration Type Documentation

◆ lsm6dso32_fsm_lc_clr_t

Enumerator
LSM6DSO32_LC_NORMAL 
LSM6DSO32_LC_CLEAR 
LSM6DSO32_LC_CLEAR_DONE 

Definition at line 3686 of file lsm6dso32_reg.h.

3687{
lsm6dso32_fsm_lc_clr_t
@ LSM6DSO32_LC_CLEAR_DONE
@ LSM6DSO32_LC_NORMAL
@ LSM6DSO32_LC_CLEAR

◆ lsm6dso32_fsm_odr_t

Enumerator
LSM6DSO32_ODR_FSM_12Hz5 
LSM6DSO32_ODR_FSM_26Hz 
LSM6DSO32_ODR_FSM_52Hz 
LSM6DSO32_ODR_FSM_104Hz 

Definition at line 3719 of file lsm6dso32_reg.h.

3720{
lsm6dso32_fsm_odr_t
@ LSM6DSO32_ODR_FSM_26Hz
@ LSM6DSO32_ODR_FSM_12Hz5
@ LSM6DSO32_ODR_FSM_52Hz
@ LSM6DSO32_ODR_FSM_104Hz

Function Documentation

◆ lsm6dso32_emb_fsm_en_get()

int32_t lsm6dso32_emb_fsm_en_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Final State Machine global enable.[get].

Parameters
ctxread / write interface definitions
uint8_t*: return the values of fsm_en in reg EMB_FUNC_EN_B
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8238 of file lsm6dso32_reg.c.

8239{
8240 int32_t ret;
8241
8244
8245 if (ret == 0)
8246 {
8248 (uint8_t *)&reg, 1);
8249 }
8250
8251 if (ret == 0)
8252 {
8253 *val = reg.fsm_en;
8255 (uint8_t *)&reg, 1);
8256 }
8257
8258 if (ret == 0)
8259 {
8261 }
8262
8263 return ret;
8264}
int32_t __weak lsm6dso32_write_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Write generic device register.
int32_t __weak lsm6dso32_read_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Read generic device register.
int32_t lsm6dso32_mem_bank_set(stmdev_ctx_t *ctx, lsm6dso32_reg_access_t val)
Enable access to the embedded functions/sensor hub configuration registers.[set].
@ LSM6DSO32_USER_BANK
@ LSM6DSO32_EMBEDDED_FUNC_BANK
#define LSM6DSO32_EMB_FUNC_EN_B

References lsm6dso32_emb_func_en_b_t::fsm_en, LSM6DSO32_EMB_FUNC_EN_B, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_emb_fsm_en_set()

int32_t lsm6dso32_emb_fsm_en_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

Final State Machine global enable.[set].

Parameters
ctxread / write interface definitions
valchange the values of fsm_en in reg EMB_FUNC_EN_B
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8202 of file lsm6dso32_reg.c.

8203{
8204 int32_t ret;
8205
8208
8209 if (ret == 0)
8210 {
8212 (uint8_t *)&reg, 1);
8213 }
8214
8215 if (ret == 0)
8216 {
8217 reg.fsm_en = val;
8219 (uint8_t *)&reg, 1);
8220 }
8221
8222 if (ret == 0)
8223 {
8225 }
8226
8227 return ret;
8228}

References lsm6dso32_emb_func_en_b_t::fsm_en, LSM6DSO32_EMB_FUNC_EN_B, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_fsm_data_rate_get()

int32_t lsm6dso32_fsm_data_rate_get ( stmdev_ctx_t ctx,
lsm6dso32_fsm_odr_t val 
)

Finite State Machine ODR configuration.[get].

Parameters
ctxread / write interface definitions
valGet the values of fsm_odr in reg EMB_FUNC_ODR_CFG_B
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8598 of file lsm6dso32_reg.c.

8600{
8602 int32_t ret;
8603
8605
8606 if (ret == 0)
8607 {
8609 (uint8_t *)&reg, 1);
8610 }
8611
8612 if (ret == 0)
8613 {
8614 switch (reg.fsm_odr)
8615 {
8618 break;
8619
8622 break;
8623
8626 break;
8627
8630 break;
8631
8632 default:
8634 break;
8635 }
8636
8638 }
8639
8640 return ret;
8641}
#define LSM6DSO32_EMB_FUNC_ODR_CFG_B

References lsm6dso32_emb_func_odr_cfg_b_t::fsm_odr, LSM6DSO32_EMB_FUNC_ODR_CFG_B, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), LSM6DSO32_ODR_FSM_104Hz, LSM6DSO32_ODR_FSM_12Hz5, LSM6DSO32_ODR_FSM_26Hz, LSM6DSO32_ODR_FSM_52Hz, lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_fsm_data_rate_set()

int32_t lsm6dso32_fsm_data_rate_set ( stmdev_ctx_t ctx,
lsm6dso32_fsm_odr_t  val 
)

Finite State Machine ODR configuration.[set].

Parameters
ctxread / write interface definitions
valchange the values of fsm_odr in reg EMB_FUNC_ODR_CFG_B
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8559 of file lsm6dso32_reg.c.

8561{
8563 int32_t ret;
8564
8566
8567 if (ret == 0)
8568 {
8570 (uint8_t *)&reg, 1);
8571 }
8572
8573 if (ret == 0)
8574 {
8575 reg.not_used_01 = 3; /* set default values */
8576 reg.not_used_02 = 1; /* set default values */
8577 reg.fsm_odr = (uint8_t)val;
8579 (uint8_t *)&reg, 1);
8580 }
8581
8582 if (ret == 0)
8583 {
8585 }
8586
8587 return ret;
8588}

References lsm6dso32_emb_func_odr_cfg_b_t::fsm_odr, LSM6DSO32_EMB_FUNC_ODR_CFG_B, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_emb_func_odr_cfg_b_t::not_used_01, and lsm6dso32_emb_func_odr_cfg_b_t::not_used_02.

Here is the call graph for this function:

◆ lsm6dso32_fsm_enable_get()

int32_t lsm6dso32_fsm_enable_get ( stmdev_ctx_t ctx,
lsm6dso32_emb_fsm_enable_t val 
)

Final State Machine enable.[get].

Parameters
ctxread / write interface definitions
valunion of registers from FSM_ENABLE_A to FSM_ENABLE_B
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8348 of file lsm6dso32_reg.c.

8350{
8351 int32_t ret;
8352
8354
8355 if (ret == 0)
8356 {
8357 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_FSM_ENABLE_A, (uint8_t *) val,
8358 2);
8359 }
8360
8361 if (ret == 0)
8362 {
8364 }
8365
8366 return ret;
8367}
#define LSM6DSO32_FSM_ENABLE_A

References LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_ENABLE_A, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_fsm_enable_set()

int32_t lsm6dso32_fsm_enable_set ( stmdev_ctx_t ctx,
lsm6dso32_emb_fsm_enable_t val 
)

Final State Machine enable.[set].

Parameters
ctxread / write interface definitions
valunion of registers from FSM_ENABLE_A to FSM_ENABLE_B
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8274 of file lsm6dso32_reg.c.

8276{
8277 int32_t ret;
8278
8281
8282 if (ret == 0)
8283 {
8285 (uint8_t *)&val->fsm_enable_a, 1);
8286 }
8287
8288 if (ret == 0)
8289 {
8291 (uint8_t *)&val->fsm_enable_b, 1);
8292 }
8293
8294 if (ret == 0)
8295 {
8297 (uint8_t *)&reg, 1);
8298 }
8299
8300 if (ret == 0)
8301 {
8302 if ((val->fsm_enable_a.fsm1_en |
8303 val->fsm_enable_a.fsm2_en |
8304 val->fsm_enable_a.fsm3_en |
8305 val->fsm_enable_a.fsm4_en |
8306 val->fsm_enable_a.fsm5_en |
8307 val->fsm_enable_a.fsm6_en |
8308 val->fsm_enable_a.fsm7_en |
8309 val->fsm_enable_a.fsm8_en |
8310 val->fsm_enable_b.fsm9_en |
8311 val->fsm_enable_b.fsm10_en |
8312 val->fsm_enable_b.fsm11_en |
8313 val->fsm_enable_b.fsm12_en |
8314 val->fsm_enable_b.fsm13_en |
8315 val->fsm_enable_b.fsm14_en |
8316 val->fsm_enable_b.fsm15_en |
8319 {
8320 reg.fsm_en = PROPERTY_ENABLE;
8321 }
8322
8323 else
8324 {
8326 }
8327
8329 (uint8_t *)&reg, 1);
8330 }
8331
8332 if (ret == 0)
8333 {
8335 }
8336
8337 return ret;
8338}
#define PROPERTY_ENABLE
#define PROPERTY_DISABLE
#define LSM6DSO32_FSM_ENABLE_B
lsm6dso32_fsm_enable_a_t fsm_enable_a
lsm6dso32_fsm_enable_b_t fsm_enable_b

References lsm6dso32_fsm_enable_b_t::fsm10_en, lsm6dso32_fsm_enable_b_t::fsm11_en, lsm6dso32_fsm_enable_b_t::fsm12_en, lsm6dso32_fsm_enable_b_t::fsm13_en, lsm6dso32_fsm_enable_b_t::fsm14_en, lsm6dso32_fsm_enable_b_t::fsm15_en, lsm6dso32_fsm_enable_b_t::fsm16_en, lsm6dso32_fsm_enable_a_t::fsm1_en, lsm6dso32_fsm_enable_a_t::fsm2_en, lsm6dso32_fsm_enable_a_t::fsm3_en, lsm6dso32_fsm_enable_a_t::fsm4_en, lsm6dso32_fsm_enable_a_t::fsm5_en, lsm6dso32_fsm_enable_a_t::fsm6_en, lsm6dso32_fsm_enable_a_t::fsm7_en, lsm6dso32_fsm_enable_a_t::fsm8_en, lsm6dso32_fsm_enable_b_t::fsm9_en, lsm6dso32_emb_func_en_b_t::fsm_en, lsm6dso32_emb_fsm_enable_t::fsm_enable_a, lsm6dso32_emb_fsm_enable_t::fsm_enable_b, LSM6DSO32_EMB_FUNC_EN_B, LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_ENABLE_A, LSM6DSO32_FSM_ENABLE_B, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), PROPERTY_DISABLE, and PROPERTY_ENABLE.

Here is the call graph for this function:

◆ lsm6dso32_fsm_init_get()

int32_t lsm6dso32_fsm_init_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

FSM initialization request.[get].

Parameters
ctxread / write interface definitions
valchange the values of fsm_init in reg FSM_INIT
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8687 of file lsm6dso32_reg.c.

8688{
8690 int32_t ret;
8691
8693
8694 if (ret == 0)
8695 {
8697 (uint8_t *)&reg, 1);
8698 }
8699
8700 if (ret == 0)
8701 {
8702 *val = reg.fsm_init;
8704 }
8705
8706 return ret;
8707}
#define LSM6DSO32_EMB_FUNC_INIT_B

References lsm6dso32_emb_func_init_b_t::fsm_init, LSM6DSO32_EMB_FUNC_INIT_B, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_fsm_init_set()

int32_t lsm6dso32_fsm_init_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

FSM initialization request.[set].

Parameters
ctxread / write interface definitions
valchange the values of fsm_init in reg FSM_INIT
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8651 of file lsm6dso32_reg.c.

8652{
8654 int32_t ret;
8655
8657
8658 if (ret == 0)
8659 {
8661 (uint8_t *)&reg, 1);
8662 }
8663
8664 if (ret == 0)
8665 {
8666 reg.fsm_init = val;
8668 (uint8_t *)&reg, 1);
8669 }
8670
8671 if (ret == 0)
8672 {
8674 }
8675
8676 return ret;
8677}

References lsm6dso32_emb_func_init_b_t::fsm_init, LSM6DSO32_EMB_FUNC_INIT_B, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_fsm_number_of_programs_get()

int32_t lsm6dso32_fsm_number_of_programs_get ( stmdev_ctx_t ctx,
uint8_t *  buff 
)

FSM number of programs register.[get].

Parameters
ctxread / write interface definitions
buffbuffer that stores data read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8797 of file lsm6dso32_reg.c.

8799{
8800 int32_t ret;
8801
8803
8804 return ret;
8805}
int32_t lsm6dso32_ln_pg_read_byte(stmdev_ctx_t *ctx, uint16_t address, uint8_t *val)
Read a line(byte) in a page.[get].
#define LSM6DSO32_FSM_PROGRAMS

References LSM6DSO32_FSM_PROGRAMS, and lsm6dso32_ln_pg_read_byte().

Here is the call graph for this function:

◆ lsm6dso32_fsm_number_of_programs_set()

int32_t lsm6dso32_fsm_number_of_programs_set ( stmdev_ctx_t ctx,
uint8_t *  buff 
)

FSM number of programs register.[set].

Parameters
ctxread / write interface definitions
buffbuffer that contains data to write
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8779 of file lsm6dso32_reg.c.

8781{
8782 int32_t ret;
8783
8785
8786 return ret;
8787}
int32_t lsm6dso32_ln_pg_write_byte(stmdev_ctx_t *ctx, uint16_t address, uint8_t *val)
Write a line(byte) in a page.[set].

References LSM6DSO32_FSM_PROGRAMS, and lsm6dso32_ln_pg_write_byte().

Here is the call graph for this function:

◆ lsm6dso32_fsm_out_get()

int32_t lsm6dso32_fsm_out_get ( stmdev_ctx_t ctx,
lsm6dso32_fsm_out_t val 
)

FSM output registers[get].

Parameters
ctxread / write interface definitions
valstruct of registers from FSM_OUTS1 to FSM_OUTS16
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8530 of file lsm6dso32_reg.c.

8532{
8533 int32_t ret;
8534
8536
8537 if (ret == 0)
8538 {
8539 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_FSM_OUTS1, (uint8_t *) &val,
8540 16);
8541 }
8542
8543 if (ret == 0)
8544 {
8546 }
8547
8548 return ret;
8549}
#define LSM6DSO32_FSM_OUTS1

References LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_OUTS1, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_fsm_start_address_get()

int32_t lsm6dso32_fsm_start_address_get ( stmdev_ctx_t ctx,
uint16_t *  val 
)

FSM start address register (r/w). First available address is 0x033C.[get].

Parameters
ctxread / write interface definitions
buffbuffer that stores data read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8846 of file lsm6dso32_reg.c.

8848{
8849 uint8_t buff[2];
8850 int32_t ret;
8851
8853 &buff[0]);
8854
8855 if (ret == 0)
8856 {
8858 &buff[1]);
8859 *val = buff[1];
8860 *val = (*val * 256U) + buff[0];
8861 }
8862
8863 return ret;
8864}
#define LSM6DSO32_FSM_START_ADD_L
#define LSM6DSO32_FSM_START_ADD_H

References LSM6DSO32_FSM_START_ADD_H, LSM6DSO32_FSM_START_ADD_L, and lsm6dso32_ln_pg_read_byte().

Here is the call graph for this function:

◆ lsm6dso32_fsm_start_address_set()

int32_t lsm6dso32_fsm_start_address_set ( stmdev_ctx_t ctx,
uint16_t  val 
)

FSM start address register (r/w). First available address is 0x033C.[set].

Parameters
ctxread / write interface definitions
buffbuffer that contains data to write
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8816 of file lsm6dso32_reg.c.

8818{
8819 uint8_t buff[2];
8820 int32_t ret;
8821
8822 buff[1] = (uint8_t)(val / 256U);
8823 buff[0] = (uint8_t)(val - (buff[1] * 256U));
8825 &buff[0]);
8826
8827 if (ret == 0)
8828 {
8829 ;
8831 &buff[1]);
8832 }
8833
8834 return ret;
8835}

References LSM6DSO32_FSM_START_ADD_H, LSM6DSO32_FSM_START_ADD_L, and lsm6dso32_ln_pg_write_byte().

Here is the call graph for this function:

◆ lsm6dso32_long_clr_get()

int32_t lsm6dso32_long_clr_get ( stmdev_ctx_t ctx,
lsm6dso32_fsm_lc_clr_t val 
)

Clear FSM long counter value.[get].

Parameters
ctxread / write interface definitions
valGet the values of fsm_lc_clr in reg FSM_LONG_COUNTER_CLEAR
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8478 of file lsm6dso32_reg.c.

8480{
8482 int32_t ret;
8483
8485
8486 if (ret == 0)
8487 {
8489 (uint8_t *)&reg, 1);
8490 }
8491
8492 if (ret == 0)
8493 {
8494 switch (reg.fsm_lc_clr)
8495 {
8497 *val = LSM6DSO32_LC_NORMAL;
8498 break;
8499
8500 case LSM6DSO32_LC_CLEAR:
8501 *val = LSM6DSO32_LC_CLEAR;
8502 break;
8503
8506 break;
8507
8508 default:
8509 *val = LSM6DSO32_LC_NORMAL;
8510 break;
8511 }
8512 }
8513
8514 if (ret == 0)
8515 {
8517 }
8518
8519 return ret;
8520}
#define LSM6DSO32_FSM_LONG_COUNTER_CLEAR

References lsm6dso32_fsm_long_counter_clear_t::fsm_lc_clr, LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_LONG_COUNTER_CLEAR, LSM6DSO32_LC_CLEAR, LSM6DSO32_LC_CLEAR_DONE, LSM6DSO32_LC_NORMAL, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_long_clr_set()

int32_t lsm6dso32_long_clr_set ( stmdev_ctx_t ctx,
lsm6dso32_fsm_lc_clr_t  val 
)

Clear FSM long counter value.[set].

Parameters
ctxread / write interface definitions
valchange the values of fsm_lc_clr in reg FSM_LONG_COUNTER_CLEAR
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8440 of file lsm6dso32_reg.c.

8442{
8444 int32_t ret;
8445
8447
8448 if (ret == 0)
8449 {
8451 (uint8_t *)&reg, 1);
8452 }
8453
8454 if (ret == 0)
8455 {
8456 reg. fsm_lc_clr = (uint8_t)val;
8458 (uint8_t *)&reg, 1);
8459 }
8460
8461 if (ret == 0)
8462 {
8464 }
8465
8466 return ret;
8467}

References LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_LONG_COUNTER_CLEAR, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_USER_BANK, and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_long_cnt_flag_data_ready_get()

int32_t lsm6dso32_long_cnt_flag_data_ready_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Interrupt status bit for FSM long counter timeout interrupt event.[get].

Parameters
ctxread / write interface definitions
valchange the values of is_fsm_lc in reg EMB_FUNC_STATUS
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8171 of file lsm6dso32_reg.c.

8173{
8175 int32_t ret;
8176
8178
8179 if (ret == 0)
8180 {
8182 (uint8_t *)&reg, 1);
8183 }
8184
8185 if (ret == 0)
8186 {
8187 *val = reg.is_fsm_lc;
8189 }
8190
8191 return ret;
8192}
#define LSM6DSO32_EMB_FUNC_STATUS

References lsm6dso32_emb_func_status_t::is_fsm_lc, LSM6DSO32_EMB_FUNC_STATUS, LSM6DSO32_EMBEDDED_FUNC_BANK, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_long_cnt_get()

int32_t lsm6dso32_long_cnt_get ( stmdev_ctx_t ctx,
uint16_t *  val 
)

FSM long counter status register. Long counter value is an unsigned integer value (16-bit format).[get].

Parameters
ctxread / write interface definitions
buffbuffer that stores data read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8409 of file lsm6dso32_reg.c.

8410{
8411 uint8_t buff[2];
8412 int32_t ret;
8413
8415
8416 if (ret == 0)
8417 {
8419 }
8420
8421 if (ret == 0)
8422 {
8424 *val = buff[1];
8425 *val = (*val * 256U) + buff[0];
8426 }
8427
8428 return ret;
8429}
#define LSM6DSO32_FSM_LONG_COUNTER_L

References LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_LONG_COUNTER_L, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_long_cnt_int_value_get()

int32_t lsm6dso32_long_cnt_int_value_get ( stmdev_ctx_t ctx,
uint16_t *  val 
)

FSM long counter timeout register (r/w). The long counter timeout value is an unsigned integer value (16-bit format). When the long counter value reached this value, the FSM generates an interrupt.[get].

Parameters
ctxread / write interface definitions
buffbuffer that stores data read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8751 of file lsm6dso32_reg.c.

8753{
8754 uint8_t buff[2];
8755 int32_t ret;
8756
8758 &buff[0]);
8759
8760 if (ret == 0)
8761 {
8763 &buff[1]);
8764 *val = buff[1];
8765 *val = (*val * 256U) + buff[0];
8766 }
8767
8768 return ret;
8769}
#define LSM6DSO32_FSM_LC_TIMEOUT_L
#define LSM6DSO32_FSM_LC_TIMEOUT_H

References LSM6DSO32_FSM_LC_TIMEOUT_H, LSM6DSO32_FSM_LC_TIMEOUT_L, and lsm6dso32_ln_pg_read_byte().

Here is the call graph for this function:

◆ lsm6dso32_long_cnt_int_value_set()

int32_t lsm6dso32_long_cnt_int_value_set ( stmdev_ctx_t ctx,
uint16_t  val 
)

FSM long counter timeout register (r/w). The long counter timeout value is an unsigned integer value (16-bit format). When the long counter value reached this value, the FSM generates an interrupt.[set].

Parameters
ctxread / write interface definitions
buffbuffer that contains data to write
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8720 of file lsm6dso32_reg.c.

8722{
8723 uint8_t buff[2];
8724 int32_t ret;
8725
8726 buff[1] = (uint8_t)(val / 256U);
8727 buff[0] = (uint8_t)(val - (buff[1] * 256U));
8729 &buff[0]);
8730
8731 if (ret == 0)
8732 {
8734 &buff[1]);
8735 }
8736
8737 return ret;
8738}

References LSM6DSO32_FSM_LC_TIMEOUT_H, LSM6DSO32_FSM_LC_TIMEOUT_L, and lsm6dso32_ln_pg_write_byte().

Here is the call graph for this function:

◆ lsm6dso32_long_cnt_set()

int32_t lsm6dso32_long_cnt_set ( stmdev_ctx_t ctx,
uint16_t  val 
)

FSM long counter status register. Long counter value is an unsigned integer value (16-bit format).[set].

Parameters
ctxread / write interface definitions
buffbuffer that contains data to write
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8378 of file lsm6dso32_reg.c.

8379{
8380 uint8_t buff[2];
8381 int32_t ret;
8382
8383 buff[1] = (uint8_t)(val / 256U);
8384 buff[0] = (uint8_t)(val - (buff[1] * 256U));
8386
8387 if (ret == 0)
8388 {
8390 }
8391
8392 if (ret == 0)
8393 {
8395 }
8396
8397 return ret;
8398}

References LSM6DSO32_EMBEDDED_FUNC_BANK, LSM6DSO32_FSM_LONG_COUNTER_L, lsm6dso32_mem_bank_set(), LSM6DSO32_USER_BANK, and lsm6dso32_write_reg().

Here is the call graph for this function: